MapReduce服务 MRS-Repartition时有部分Partition没数据:回答

时间:2023-11-01 16:25:25

回答

这是正常现象。

数据分到哪个partition是通过对key的hashcode取模得到的,不同的hashcode取模后的结果有可能是一样的,那样数据就会被分到相同的partition里面,因此出现有些partition没有数据而有些partition里面有多个key对应的数据。

通过调整“spark.sql.shuffle.partitions”参数值可以调整取模时的基数,改善数据分块不均匀的情况,多次验证发现配置为质数或者奇数效果比较好。

在Driver端的“spark-defaults.conf”配置文件中调整如下参数。

表1 参数说明

参数

描述

默认值

spark.sql.shuffle.partitions

shuffle操作时,shuffle数据的分块数。

200

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2030.html