我有一个超过400列的数据框。大多数列都是歪斜的,即数据帧中一行中大多数列的值大部分为空,除了少数列(大约20列)
我打算将此结构更改为
col1:Array[String]
col2:Array[String]
...
MapColumn: MapType {
key:String
value:Array[String]
}
我想知道使用MapType列和火花中的镶木地板是否会对性能产生影响?
答案 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,则没有明显的区别。