首页 > 解决方案 > 排序后磁盘上压缩文件的大小大幅增加?

问题描述

我有一个 pandas 数据框,我将它作为 GZIP 存储在磁盘上。在 RAM 上它大约 90GB,当我使用 pandas.to_parquet 将它保存为 gzip 时,它压缩到大约 3GB。

我最近在不同的列上使用 pandas.sort_values 对其进行了排序,当我使用相同的方法保存它时,磁盘上的这个大小突然变成了 60GB。

为什么会发生这种情况,是否有不同的排序/保存方法来防止这种情况发生?

标签: pandascompressionparquet

解决方案


我不得不猜测您的文件以前是在不同的列上排序的,并且该列的内容与紧接在前的记录的匹配是压缩的重要部分。然后,当您对不同的列进行排序时,另一列被有效地随机化,因此相似的值不再彼此靠近。您排序的列可能会比以前有更好的压缩,但与最初排序的列相比,这种影响很小。这就是扼杀压缩的原因。


推荐阅读