Spark Parquet Perfomance with MapType Columns



我有一个包含 400 多列的数据帧。大多数列都是倾斜的,即数据帧中一行中大多数列的值大多为空,除了少数列(大约 20 列(

我计划将此结构更改为

col1:Array[String]
col2:Array[String]
...
MapColumn: MapType {
key:String
value:Array[String] 
}

我想知道使用带有火花镶木地板的 MapType 列是否有已知的性能影响?

我做了一些实验来测试性能。我选取了一个包含 100 列和 100 万个条目的数据集。我在 MapType 列中转换了数据集

Size of Parquet format all columns: 81MB
Size of Parquet format columns converted to MapType where map values could be NULL: 496MB
Size of Parquet format columns converted to MapType where map values with NULL removed: 86MB 

在我看来,如果您可以删除 Null,则没有显着区别。

最新更新