如何合并RDD数组 [英] How to merge RDD array
本文介绍了如何合并RDD数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个RDD数组: Array [RDD [(String,Double)]]
,如何将这些RDD合并到 RDD [String,Array [Double]]
.例如:
I have a RDD array: Array[RDD[(String, Double)]]
, how to merge those RDDs into RDD[String, Array[Double]]
. For example:
RDD Array: [[('x', 1), ('y', 2)], [('x', 3), ('y', 4)],...] =>
RDD: [('x', [1, 3,...]), ('y', [2, 4, ...])]
任何帮助表示赞赏!谢谢
Any help appreciated! Thanks
推荐答案
- 您应将RDDS数组合并为一个RDD(第1行)
- 按字符串值对它们进行分组(第2行)
- 我看到预期的输出已排序,如果需要,您可以对值进行排序(第3行)
val mergeIntoOne:RDD [(String,Double)] = array.fold(sparkSession.sparkContext.emptyRDD [(String,Double)])(_ ++ _)val groupByKeys:RDD [(String,Iterable [Double])] = mergeIntoOne.groupByKey()val sortedValues = groupByKeys.mapValues(_.toList.sorted)
这篇关于如何合并RDD数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文