为什么groupByKey操作总是有200个任务?

时间:2015-07-07 10:23:00

标签: apache-spark

每当我在RDD上执行groupByKey时,它就会分成200个作业,即使原始表非常大,例如2k分区和数千万行。

此外,操作似乎停留在最后两个需要很长时间才能计算的任务上。

为什么是200?如何增加它会有帮助吗?

1 个答案:

答案 0 :(得分:6)

此设置来自spark.sql.shuffle.partitions,这是分组时使用的分区数,并且具有default setting of 200,但可以增加。这可能有所帮助,它将取决于集群和数据。

最后两个任务花费很长时间是由于数据偏斜,这些键包含更多的值。您可以使用reduceByKey / combineByKey而非groupByKey,还是以不同的方式并行化问题?