我们使用spark SQL(v2.1.0)处理存储在hive表中的数据。我们发现我们的火花任务表现出严重的偏斜。例如:在p_75
以下任务中,输入大小为127.1MB,但最大输入大小为634.7MB:
如何在任务中更均匀地分配输入大小?
我们尝试在读取数据的同时更改分区数,但它不能修复偏斜:
以下是我们的配置单元表的一些其他有用属性:
| ROW FORMAT SERDE |
| 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' |
| STORED AS INPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' |
| OUTPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
HDFS文件本身以镶木地板格式存储,带有快速压缩(文件以.snappy.parquet
结尾),可按this链接分割