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亿
请帮忙
使用加入:
val res: RDD[(Long, V)] = rdd1.join(rdd2)
.map { case(k, (_, v2)) => (k, v2) }
Run Code Online (Sandbox Code Playgroud)