Parquet文件大小如何随Spark Dataset中的计数变化

时间:2019-05-30 06:39:00

标签: apache-spark parquet

我遇到了一个场景,其中有24列的spark数据集,其中我按前22列进行分组,并对后两列进行求和。

我从查询中删除了分组依据,现在我选择了所有24列。 数据集的初始计数为79,304。

在我删除分组依据之后,计数增加到138,204,这可以理解,因为我在删除分组依据。

但是我并不清楚以下行为:镶木地板文件的初始大小为 2.3MB ,但后来减小为 1.5MB 。谁能帮我理解这一点。

也并非每次尺寸减小时, 我有22列的类似情况 之前的计数是35,298,226,而除去分组的计数是59,874,208 并且大小从 466.5MB 增加到 509.8MB

1 个答案:

答案 0 :(得分:4)

在处理实木复合地板尺寸时,它与行数无关,而与它本身的数据无关。 Parquet是面向列的格式,因此它按列存储数据,并按列压缩数据。因此,这与行数无关,而与列的多样性有关。

由于表中最多样化的列的多样性,因此Parquet的压缩效果更好。因此,如果您有一个列数据框,则它的压缩效果将达到列值之间的距离。