使用pyarrow和json.dump将json文件保存在hdfs中

时间:2018-11-20 23:04:18

标签: python json hdfs pyarrow

我正在尝试使用pyarrow将json文件保存在HDFS中。这是我的代码的样子。

using (var context = new BlogContext())
{
    context.Database.Log = s => Debug.WriteLine(s);
    //generated sql is now in output window
}

这会显示一个错误,提示from pyarrow import hdfs fs = hdfs.connect(driver='libhdfs') with fs.open(outputFileVal1, 'wb') as fp: json.dump(list(value1set), fp)

当我尝试joblib.dump或pickle.dump时,它可以工作,但不会以json格式保存。有什么方法可以使用pyarrow将json文件直接保存到hdfs。

1 个答案:

答案 0 :(得分:0)

看起来您可能需要使用包装器,该包装器将使用json.dumpchunk.encode('utf8')写入的数据编码为二进制。像

class Utf8Encoder(object);

    def __init__(self, fp):
        self.fp = fp

    def write(self, data):
        if not isinstance(data, bytes):
            data = data.encode('utf-8')
        self.fp.write(data)

那你就可以写

json.dump(..., UtfEncoder(fp))