brotli如何在INT64上实现比INT32更好的拼花文件压缩?

2024-05-13 19:15:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一些实验,用brotli压缩将随机整数的数据帧保存到拼花地板上。我的一个测试是找出存储为32位整数与64位整数之间的大小比:

df = pd.DataFrame(
    np.random.randint(0, 10000000, size=(1000000, 4)), columns=["a", "b", "c", "d"]
)

df.astype("Int32").to_parquet("/tmp/i32.parquet", compression="brotli")
i32_size = int(Path("/tmp/i32.parquet").stat().st_size)

df.astype("Int64").to_parquet("/tmp/i64.parquet", compression="brotli")
i64_size = int(Path("/tmp/i64.parquet").stat().st_size)

print(i64_size / i32_size)

我希望这会输出一些数字>;1,因为我期望INT64比INT32大,但实际上我得到~0.96。为什么呢

我已经用parquet-tools检查过了,文件肯定分别保存为INT32和INT64。如果我尝试使用gzip压缩,我会得到一个比率>;1.


Tags: topathdfsize整数tmpstatint