将元素合并到rdd中的数组

时间:2018-09-07 22:53:42

标签: scala apache-spark spark-streaming

如何将元素与其键组合的RDD[(Int,Int)]转换为RDD[Array[(Int,Int)]]

让我们说

  

(0,0),(1,0),(1,1),(0,1)

并且我希望它是一个数组arr1 =((0,0),(1,0))和arr2((1,1),(0,1)) 因此,生成的rdd将把arr1,arr2作为数组。

1 个答案:

答案 0 :(得分:0)

您基本上想做的是将RDD[TupleN]按第i个元素分组。您可以使用

rdd.groupBy(_._1)

创建

Map[T, RDD[TupleN]]

其中的键将是第i个元素(在您的示例中为0或1)。

然后您可以使用mapValues(_.toArray)

将此映射的值映射到数组。