根据另一个RDD过滤掉一个RDD

use*_*660 4 scala filter apache-spark

我有两个RDD:

**rdd1**
id1 val1
id2 val2

**rdd2**
id1 v1
id2 v2
id1 v3
id8 v7
id1 v4
id3 v5
id6 v6
Run Code Online (Sandbox Code Playgroud)

我想过滤RDD2,使其仅包含rdd1的键.所以输出将是

**output**
id1 v1
id2 v2
id1 v3
id1 v4
Run Code Online (Sandbox Code Playgroud)

之前已经在stackoverflow中询问了这个问题,但对于人们广播设置然后用于过滤的较小数据集,我的问题是rdd1大小> 5亿,rdd2超过100亿

请帮忙

Jea*_*art 6

使用加入:

val res: RDD[(Long, V)] = rdd1.join(rdd2)
                              .map { case(k, (_, v2)) => (k, v2) }
Run Code Online (Sandbox Code Playgroud)