每当我做 groupByKey
在 RDD 上,它被分成 200 个作业,即使原始表非常大,例如2k 个分区和数千万行。
此外,该操作似乎卡在了最后两个需要很长时间计算的任务上。
为什么是200?如何增加它,它会有帮助吗?
最佳答案
此设置来自 spark.sql.shuffle.partitions
,这是分组时要使用的分区数,并且有 default setting of 200 ,但可以增加。这可能会有所帮助,它将取决于集群和数据。
需要很长时间的最后两个任务将是由于数据倾斜,这些键包含更多值。你能用吗reduceByKey
/combineByKey
而不是 groupByKey
,或者以不同的方式并行化问题?
关于apache-spark - 为什么 groupByKey 操作总是有 200 个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31265927/