Spark Parquet 性能与 MapType 列
Spark Parquet Perfomance with MapType Columns
我有一个包含 400 多列的数据框。大多数列都是倾斜的,即数据框中一行中大多数列的值大多为空,除了少数列(大约 20)
我打算将此结构更改为
col1:Array[String]
col2:Array[String]
...
MapColumn: MapType {
key:String
value:Array[String]
}
我想知道在 spark 中使用带有 parquet 的 MapType 列是否有已知的性能影响?
我运行做了几个实验来测试性能。我采用了一个包含 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
在我看来,如果您可以删除空值,则没有显着差异。
我有一个包含 400 多列的数据框。大多数列都是倾斜的,即数据框中一行中大多数列的值大多为空,除了少数列(大约 20)
我打算将此结构更改为
col1:Array[String]
col2:Array[String]
...
MapColumn: MapType {
key:String
value:Array[String]
}
我想知道在 spark 中使用带有 parquet 的 MapType 列是否有已知的性能影响?
我运行做了几个实验来测试性能。我采用了一个包含 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
在我看来,如果您可以删除空值,则没有显着差异。