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

dmy*_*tro 4 apache-spark

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

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

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

dpe*_*ock 6

此设置来自spark.sql.shuffle.partitions,分组时使用的分区数,默认设置为200,但可以增加.这可能会有所帮助,它将取决于群集和数据.

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