我正在spark 2.4.0中执行一个内部联接,该联接在一个很小的数据集(9行)和一个更大的数据集(〜20亿行)之间。对于400个分区,该操作将在合理的时间内(<10分钟)完成,但是对于4000个分区,该操作似乎要花很长时间。
以下是400个分区(6.5分钟)的查询详细信息:
然后是4000个分区的详细信息(27分钟):
我看到速度较慢的版本正在执行更多的随机播放IO,但似乎不足以解决4-5倍的速度下降。
编辑:在我看来,计划文本在图像中可能太小了,所以here they are in text form