根据fastparquet的项目页面,fastparquet
支持多种压缩方式
可选(压缩算法;gzip 始终可用):
snappy (aka python-snappy) lzo brotli lz4 zstandard
尤其zstandard
是现代算法,它提供了高压缩比以及令人印象深刻的快速压缩/解压缩速度。这就是我在 fastparquet 中想要的。
压缩应用于每一列,例如 GZIP 或 SNAPPY 或像 {"col1": "SNAPPY", "col2": None} 这样的字典来指定每列的压缩类型。在这两种情况下,压缩器设置都是底层压缩器默认值。要将参数传递给底层压缩器,每个 dict 条目本身应该是一个字典:
{ 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'?这与项目页面有很大的差异!我错过了一些包裹吗?如何将 fastparquest 与所有项目页面声明的压缩算法一起使用?