【发布时间】:2018-07-28 16:43:41
【问题描述】:
我使用的是 Spark2.1 版本,我有一个关于 spark join 如何在内部工作的基本问题。
假设有 2 组对 RDD,如下所示,分布在 2 个数据节点上:
员工 RDD(员工 ID 和部门):节点 1: (100,亚当) (101,约翰) (102,特里)
从属 RDD(员工 ID 和从属人数):节点 1 (100,3) (101,2) (202,3)
员工 RDD(员工 ID 和部门):节点 2: (200,汤姆) (201,维多利亚) (202,玛丽亚)
从属 RDD(员工 ID 和从属人数):节点 2 (102,5) (200,1) (201,4)
基于上面的数据分布,如果join发生在上面的2 Pair RDD上,那么join操作将如何发生在数据locality上,因为 在节点 1 中,Spark 将无法在节点 1 中找到 102 的匹配键。
但是这个join的值在节点2中是可用的。那么spark会从所有节点加载数据来完成join操作吗?如果发生这种情况会不会成为瓶颈?
【问题讨论】:
标签: apache-spark join nodes operation