首页 > 解决方案 > 将元素组合成rdd中的数组

问题描述

如何将 an 转换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 作为数组.

标签: scalaapache-sparkspark-streaming

解决方案


您基本上要做的是RDD[TupleN]ith 元素对 an 进行分组。您可以使用

rdd.groupBy(_._1)

创建一个

Map[T, RDD[TupleN]]

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

然后你可以将此映射的值映射到一个数组mapValues(_.toArray)


推荐阅读