我正在尝试使用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。
发布于 2018-11-21 17:34:33
看起来您可能需要使用一个包装器,该包装器使用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(..., UtfEncoder(fp))
https://stackoverflow.com/questions/53402930
复制