4

我进行了一些实验,其中我使用 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 的比率。

4

0 回答 0