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

ki0zmccv  于 2022-12-09  发布在  HDFS
关注(0)|答案(1)|浏览(187)

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

from pyarrow import hdfs
fs = hdfs.connect(driver='libhdfs')
with fs.open(outputFileVal1, 'wb') as fp:
    json.dump(list(value1set), fp)

这会产生错误消息TypeError: a bytes-like object is required, not 'str'
当我尝试joblib.dump或pickle.dump时,它可以工作,但是它不能保存为json格式。有没有办法用pyarrow将json文件直接保存到hdfs中?

w6mmgewl

w6mmgewl1#

看起来您可能需要使用一个 Package 器,它使用chunk.encode('utf8')json.dump写入的数据编码为二进制。

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(..., Utf8Encoder(fp))

相关问题