每当我做一个groupByKey
在 RDD 上,即使原始表非常大,它也会分为 200 个作业,例如2k 个分区和数千万行。
此外,该操作似乎陷入了最后两个任务,这两个任务的计算时间非常长。
为什么是200?如何增加它,会有帮助吗?
这个设置来自spark.sql.shuffle.partitions
,这是分组时要使用的分区数,并且有一个默认设置为 200,但可以增加。这可能会有所帮助,它将依赖于集群和数据。
最后两个任务花费很长时间将是由于数据倾斜,这些键包含更多值。你能用吗reduceByKey
/ combineByKey
而不是groupByKey
,或者以不同的方式并行化问题?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)