在apachespark中,可以使用 sparkContext.union()
方法。如果有人想让多个RDD相交,有没有类似的东西?我已经在sparkcontext方法中搜索过了,但找不到任何东西或其他地方。一种解决方案可以是联合rdd,然后检索重复的rdd,但我认为这可能没有那么有效。假设我有以下关于键/值对集合的示例:
val rdd1 = sc.parallelize(Seq((1,1.0),(2,1.0)))
val rdd2 = sc.parallelize(Seq((1,2.0),(3,4.0),(3,1.0)))
我要检索包含以下元素的新集合:
(1,2.0) (1,1.0)
当然,对于多个RDD,而不仅仅是两个。
2条答案
按热度按时间cygmwpex1#
尝试:
a7qyws3x2#
rdd上有一个交集方法,但它只需要另一个rdd:
让我们用这个来实现你想要的方法。
如果您已经了解了spark连接的实现,可以通过将最大的rdd放在第一位来优化执行:
编辑:看起来我误读了您的示例:您的文本看起来像是在搜索rdd.union的反向行为,但您的示例暗示您希望按键相交。我的回答不涉及这个问题。