具有MapType列的Spark Parquet Perfomance

时间:2018-10-03 10:25:17

标签: apache-spark dataframe parquet

我有一个超过400列的数据框。大多数列都是歪斜的,即数据帧中一行中大多数列的值大部分为空,除了少数列(大约20列)

我打算将此结构更改为

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

我想知道使用MapType列和火花中的镶木地板是否会对性能产生影响?

1 个答案:

答案 0 :(得分:0)

我进行了一些实验来测试性能。我获取了一个包含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,则没有明显的区别。