【发布时间】:2020-05-09 07:38:30
【问题描述】:
根据project page of fastparquet,fastparquet支持多种压缩方式
可选(压缩算法;gzip 始终可用):
snappy (aka python-snappy) lzo brotli lz4 zstandard
尤其是zstandard 是一种现代算法,可提供高压缩比以及令人印象深刻的快速压缩/解压缩速度。这就是我在 fastparquet 中想要的。
但是在fastparquet.write的文档中
压缩应用于每一列,例如GZIP 或 SNAPPY 或 dict 像 {"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 与所有项目页面声明的压缩算法一起使用?
【问题讨论】:
标签: python pandas compression fastparquet