Python 如何将拼花地板字节对象作为zipfile写入磁盘

Python 如何将拼花地板字节对象作为zipfile写入磁盘,python,pandas,zip,byte,parquet,Python,Pandas,Zip,Byte,Parquet,我从一个熊猫数据框开始,我想把它保存为一个压缩的拼花地板文件,全部存储在内存中,而不需要在磁盘上执行中间步骤。我有以下资料: bytes\u buffer=BytesIO() df.to_拼花地板(字节_缓冲区) bytes\u value=bytes\u buffer.getvalue() 使用ZipFile('example.zip','w')作为zip_对象: zip_obj.write(字节_buffer.getvalue()) 但是我得到了这个编码错误:ValueError:stat

我从一个熊猫数据框开始,我想把它保存为一个压缩的拼花地板文件,全部存储在内存中,而不需要在磁盘上执行中间步骤。我有以下资料:

bytes\u buffer=BytesIO()
df.to_拼花地板(字节_缓冲区)
bytes\u value=bytes\u buffer.getvalue()
使用ZipFile('example.zip','w')作为zip_对象:
zip_obj.write(字节_buffer.getvalue())
但是我得到了这个编码错误:
ValueError:stat:path
中嵌入了空字符。我从内存中创建ZipFile时找到的唯一链接中获得了信息:


感谢您的帮助:)

正确的方法是:

bytes\u buffer=BytesIO()
df.to_拼花地板(字节_缓冲区)
bytes\u value=bytes\u buffer.getvalue()
使用ZipFile('example.zip','w')作为zip_对象:
zip_obj.writestr('file.parquet',bytes_buffer.getvalue())
但是您不应该认为仅仅为了压缩而将拼花地板文件存储在ZIP中会消除拼花地板格式本身的许多优点。默认情况下,拼花地板已使用Snappy压缩代码进行压缩(但您也可以使用GZip、ZStandard和其他代码)。压缩不是发生在文件级别,而是发生在列块级别。这意味着当您访问该文件时,只有您想要读取的部分必须解压缩。与此相反,当您将拼花地板文件放入ZIP时,即使您只想读取列选择,也需要对整个文件进行解压缩