Cascalog进程多行json?

Cascalog process multi-line json?

我有一个包含 Json 个文件的目录,我想使用 cascalog 处理这些文件。我现在拥有的解决方案要求我使用 bash 脚本从我的 json 文件中删除所有换行符。我正在寻找更好的解决方案,因为我使用 rsync 同步这些文件。

我的问题是我可以读取 Cascalog 中的文件内容和 return 文件内容作为一个元组。目前函数 'lfs-textline' returns 是文件中每一行的元组序列,因此我必须删除换行符。最好我想 return 每个文件的元组序列。

(defn textline-parsed [dir]
    (let [source (lfs-textline dir)]
        (<- [?line]
            (source ?line))))

使用 cascalog.more-taps 中的 hfs-wholefile 来执行此操作。

(:require [cascalog.more-taps :as taps])

(defn- byte-writable-to-str [bw]
  "convert byte writable to stirng"
  [(apply str (map char (. bw (getBytes))))])

然后,使用

(??<- [?str] 
    ((taps/hfs-wholefile path) ?filename ?file-content) 
    (byte-writable-to-str ?file-content :> ?str)