是否可以将dask / pandas DataFrame写入木地板并返回字节字符串?我知道使用to_parquet()
函数无法接受文件路径。也许,您还有其他方法可以做到这一点。如果不可能做这样的事情,添加这样的功能是否有意义?理想情况下,应该是这样的:
parquet_bytes = df.to_parquet() # bytes string is returned
谢谢!
答案 0 :(得分:0)
已经进行了允许这种事情的工作,但是目前还不是您建议的单行事情。
首先,如果您有可以容纳在内存中的数据,则可以使用fastparquet的var gameData = {
x: 0,
y: 0
};
setInterval(heartbeat, 1000 /1);
function heartbeat() {
console.log('=====================');
update({x: gameData.x, y: gameData.y}); // doesn't update object
update(gameData); // updates object
// gameData = update(gameData);
}
function update(data) {
data.x += 1;
data.y += 1;
console.log('gameData', gameData);
// return data;
}
方法,并提供一个write()
参数。此功能必须是在二进制写入模式下创建类似文件的对象的函数,在这种情况下,您可以使用open=
。
要直接使用dask进行此操作,可以使用filesystem_spec项目中的the MemoryFileSystem。您需要将类添加到Dask并编写如下:
BytesIO()
完成后,属于类属性的dask.bytes.core._filesystems['memory'] = fsspec.implementations.memory.MemoryFileSystem
df.to_parquet('memory://name.parquet')
将包含类似于文件名的键和包含数据的BytesIO对象的值。