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

问题描述

我进行了一些实验,在其中我通过brotli压缩将随机整数的DataFrame保存到镶木地板中。我的测试之一是找到存储为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。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)