每当我在RDD上执行groupByKey时,它会被分成200个作业,即使原始表非常大,例如2k分区和数千万行。
此外,操作似乎在最后两个任务上卡住了,这两个任务需要极长的计算时间。
为什么是200?如何增加它?它会有帮助吗?
发布于 2015-07-07 19:06:35
此设置来自spark.sql.shuffle.partitions,它是分组时使用的分区数,并且具有default setting of 200,但可以增加。这可能会有所帮助,它将依赖于集群和数据。
最后两个任务花费的时间非常长,这是因为数据不对称,这些键包含更多的值。您可以使用reduceByKey / combineByKey而不是groupByKey,或者以不同的方式并行化问题吗?
https://stackoverflow.com/questions/31265927
复制相似问题