我有两个 RDD:
**rdd1**
id1 val1
id2 val2
**rdd2**
id1 v1
id2 v2
id1 v3
id8 v7
id1 v4
id3 v5
id6 v6
我想过滤 RDD2,使其仅包含 rdd1 的键。所以输出将是
**output**
id1 v1
id2 v2
id1 v3
id1 v4
以前在 stackoverflow 中曾问过这个问题,但对于较小的数据集,人们在其中广播设置然后用于过滤,但我的问题是 rdd1 大小 > 5 亿,而 rdd2 超过 100 亿
请帮忙
最佳答案
使用连接:
val res: RDD[(Long, V)] = rdd1.join(rdd2)
.map { case(k, (_, v2)) => (k, v2) }
关于scala - 根据一个 RDD 中的键过滤另一个 RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31866041/