使用spark SQL从hive读取数据时如何防止不平衡分区?

时间:2017-07-10 02:26:40

标签: hadoop apache-spark

我们使用spark SQL(v2.1.0)处理存储在hive表中的数据。我们发现我们的火花任务表现出严重的偏斜。例如:在p_75以下任务中,输入大小为127.1MB,但最大输入大小为634.7MB:

enter image description here

如何在任务中更均匀地分配输入大小?

我们尝试在读取数据的同时更改分区数,但它不能修复偏斜:

enter image description here

以下是我们的配置单元表的一些其他有用属性:

| 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链接分割

0 个答案:

没有答案