【问题标题】:combine elements into arrays in rdd将元素组合成rdd中的数组
【发布时间】:2018-09-08 21:51:19
【问题描述】:

如何将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 作为数组。

【问题讨论】:

  • rdd.groupBy(_._1).mapValues(_.toArray) 应该让你非常接近。
  • 谢谢它的工作。如果你把它作为一个答案,我会选择它。
  • How to merge RDD array的可能重复

标签: scala apache-spark spark-streaming


【解决方案1】:

您基本上要做的是将RDD[TupleN]ith 元素分组。你可以使用

rdd.groupBy(_._1)

创建一个

Map[T, RDD[TupleN]]

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

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

【讨论】:

  • 如果我想将连续的键组合到一个数组中?所以键 0,1 将在一个数组中,而 2,3 在另一个数组中?
猜你喜欢
  • 2016-09-25
  • 1970-01-01
  • 2019-12-05
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-20
  • 2017-04-19
相关资源
最近更新 更多