在RDD中展平Scala地图

Del*_*lip 3 scala apache-spark

我有一个RDD,看起来像:

uidProcessedKeywords: org.apache.spark.rdd.RDD[(Long, Map[String,Double])]
Run Code Online (Sandbox Code Playgroud)

如何在RDD中展平地图以获得此结果:

org.apache.spark.rdd.RDD[(Long, String, Double)]
Run Code Online (Sandbox Code Playgroud)

Nik*_*ita 7

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))
Run Code Online (Sandbox Code Playgroud)