我通常使用 zstandard 作为我的数据帧的压缩算法。
这是我用来编写这些拼花文件的代码(有点简化):
import pandas as pd
import pyarrow.parquet as pq
import pyarrow as pa
parquetFilename = "test.parquet"
df = pd.DataFrame(
{
"num_legs": [2, 4, 8, 0],
"num_wings": [2, 0, 0, 0],
"num_specimen_seen": [10, 2, 1, 8],
},
index=["falcon", "dog", "spider", "fish"],
)
df = pa.Table.from_pandas(df)
pq.write_table(df, parquetFilename, compression="zstd")
并阅读这些镶木地板文件:
import pandas as pd
import pyarrow.parquet as pq
import pyarrow as pa
parquetFilename = "test.parquet"
df = pq.read_table(parquetFilename)
df = df.to_pandas()
有关详细信息,请参阅以下网站了解更多信息:
终于为blog post I wrote 提供了一个无耻的插件。它是关于 zstandard 的速度与空间平衡以及使用 pyarrow 在 parquet 文件中的 snappy 压缩。它与您的问题相关,并包含一些在 zstandard 中读取和写入 parquet 文件的更多“真实世界”代码示例。实际上,我也会很快写一篇后续文章。如果您有兴趣,请告诉我。