在RDD压扁Scala的地图 [英] Flattening a Scala Map in an RDD

查看:148
本文介绍了在RDD压扁Scala的地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个看起来像一个RDD:

  uidProcessedKeywords:org.apache.spark.rdd.RDD [(长,地图[字符串,双])]

我如何扁平化的RDD地图,让这样的:

  org.apache.spark.rdd.RDD [(长,字符串,双)


解决方案

  VAL X = sc.parallelize(名单((2,地图(A - > 0.2,B  - > 0.3))))
x.flatMap {
    案例(ID,M)=> m.map {情况下(K,V)=> (ID,K,V)}
  }
 。搜集()
RES1:数组[(智力,字符串,双)] =阵列((2,,0.2),(2,B,0.3))

I have an an RDD that looks like:

uidProcessedKeywords: org.apache.spark.rdd.RDD[(Long, Map[String,Double])]

How do I flatten the map in the RDD to get this:

org.apache.spark.rdd.RDD[(Long, String, Double)]

解决方案

val x = sc.parallelize(List((2, Map("a" -> 0.2, "b" -> 0.3))))
x.flatMap { 
    case (id, m) => m.map { case (k, v) => (id, k, v)}
  }
 .collect()
res1: Array[(Int, String, Double)] = Array((2,a,0.2), (2,b,0.3))

这篇关于在RDD压扁Scala的地图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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