为什么排序后的 parquet 文件比未排序的文件大?

Why does a sorted parquet file have a larger size than a non-sorted one?

我创建了一个数据框,如下所示:

expanded_1 = pd.DataFrame({"Point": [random.choice(points) for x in range(30000000)], 
                     "Price": [random.choice(prices) for x in range(30000000)]
                    })

我存储为 parquet 文件,它在磁盘上的大小为 90.2 MB。

Post 研究如何使用 parquet 进行压缩,我按点对值进行排序,以便可以将相似的数据保存在一起,并理解这将使默认的 parquet 压缩技术更有效.然而,我看到的结果却恰恰相反。在 运行 以下:

expanded_1.sort_values(by=['Point']).to_parquet('/expanded_1_sorted.parquet')

生成的文件大小为 211 MB。

什么导致大小增加?

我认为是乱序索引,reset_index(drop=True) 似乎修复了它。当我用 points = prices = range(1000).

测试时,它没有变得更大,而是变得更小(未分类原始的一半)

或者正如@0x26res 指出的那样,.sort_values(by=['Point'], ignore_index=True) 效率更高。没有必要修复你没有破坏的东西。结果是一样的。