Apache Spark RDD 分区和加入



当我join两个RDD时,数据实际连接在哪里,即数据是在驱动程序上聚合然后运回工作节点,还是随机选择其中一个节点来"接收"数据?此外,如果我在pairRDD上调用partition,那么分区是否自动通过键完成?

不,它不会通过驱动程序或任何单个节点继续。发生随机排序,其中执行程序之间的许多任务中的每一个都收集键子集的所有值(来自父级双方)。这些任务在迭代时形成每个键的联接产品。分区是按键的。加入两个相同分区的 RDD 是有利的,因为您可以避免随机播放。

最新更新