让我们说我有以下两个RDD,具有以下密钥对值。
rdd1 = [ (key1, [value1, value2]), (key2, [value3, value4]) ]
和
rdd2 = [ (key1, [value5, value6]), (key2, [value7]) ]
现在,我想通过键值将它们连接起来,例如,我想返回以下内容
ret = [ (key1, [value1, value2, value5, value6]), (key2, [value3, value4, value7]) ]
如何使用Python或Scala在 Spark 中执行此操作?一种方法是使用连接,但是连接会在该元组内部创建一个元组。但是我只希望每个键值对只有一个元组。
最佳答案
我将两个RDD和一个reduceByKey合并以合并值。
(rdd1 union rdd2).reduceByKey(_ ++ _)
关于python - spark中的哪个功能用于通过键组合两个RDD,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26908031/