Spark通过另一个RDD中的键过滤一个RDD

时间:2017-06-08 10:46:47

标签: apache-spark join pyspark

这是两个RDD:

rdd1 = sc.parallelize(("a","b"))
rdd2 = sc.parallelize((("a", 3), ("b", 5), ("c",4)))

我想用data1中的键过滤rdd2。结果应该是

[('a', 3), ('b', 5)]

如果RDD的大小很小,我可以收集并广播rdd1,然后使用过滤器转换来获得结果。
但是,rdd1的大小很大。所以我现在使用的方法是连接函数:

rdd1.map(lambda x : (x,1)).join(rdd2).mapValues(lambda x : x[1])

由于连接成本随着数据的大小而增加,是否有更好的结果?

0 个答案:

没有答案