快速镶木地板中的压缩选项不一致



根据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

最新更新