cascalog进程多行json?

r7s23pms  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(376)

我有一个json文件的目录,我想使用cascalog处理这些文件。我现在的解决方案要求我使用bash脚本从json文件中删除所有换行符。我正在寻找一个更好的解决方案,因为我使用rsync同步这些文件。
我的问题是我是否可以在cascalog中读取文件的内容,并将文件的内容作为一个元组返回。目前函数'lfs textline'为文件中的每一行返回一个元组序列,因此我必须删除换行符。最好是为每个文件返回一个元组序列。

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

z2acfund1#

使用来自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)

相关问题