如何合并RDD数组 [英] How to merge RDD array

查看:93
本文介绍了如何合并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

推荐答案

  1. 您应将RDDS数组合并为一个RDD(第1行)
  2. 按字符串值对它们进行分组(第2行)
  3. 我看到预期的输出已排序,如果需要,您可以对值进行排序(第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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆