根据fastparquet的项目页面,fastparquet
支持多种压缩方式
可选(压缩算法;gzip 始终可用(:
snappy (aka python-snappy) lzo brotli lz4 zstandard
特别zstandard
是现代算法,可提供高压缩比以及令人印象深刻的快速压缩/解压缩速度。这就是我在快速镶木地板中想要的。
但是在快速镶木地板的文档中。
压缩以应用于每列,例如 GZIP 或 SNAPPY 或字典 像 {"col1": "SNAPPY", "col2": None} 以指定每列 压缩类型。在这两种情况下,压缩器设置都是 基础压缩器默认值。将参数传递到基础 压缩器,每个字典条目本身都应该是一个字典:
{ col1: { "type": "LZ4", "args": { "compression_level": 6, "content_checksum": True } }, col2: { "type": "SNAPPY", "args": None } "_default": { "type": "GZIP", "args": None } }
没有提到zstandard。更糟糕的是,如果我写
fastparquet.write('outfile.parq', df, compression='LZ4')
它弹出错误说
压缩"LZ4"不可用。 选项: ["GZIP", "未压缩"]
那么fastparquest
只支持"GZIP"吗?这与项目页面有很大差异!我是否缺少一些包裹?如何将快速任务与所有项目页面规定的压缩算法一起使用?
是的,您可能缺少一些软件包。您的系统必须首先具有python LZ4和/或zstandard绑定。有关更多详细信息,请参阅源代码。
-
对于 LZ4:如果
import lz4.block
给出ModuleNotFoundError
,则继续使用pip install lz4
进行安装。 -
同样对于 zstandard:
pip install zstandard
-
对于布罗特利:
pip install brotlipy
-
和 lzo:
pip install python-lzo
-
活泼:
pip install python-snappy