基于Spark Scala中的键映射和拆分数据

基于Spark Scala中的键映射和拆分数据,scala,apache-spark,rdd,Scala,Apache Spark,Rdd,如何在scala中实现这一点 val a = sc.parallelize(List(("a", "aaa$$bbb"), ("b", ("ccc$$ddd$$eee")))) val res1 = a.mapValues(_.replaceAll("\\$\\$", "-")) 这里有数组[(String,String)] 现在我希望结果如下 1,aaa 1,bbb 2,ccc 2,ddd 2,eee 提前感谢您可以使用flatMap: res1.flatMap{ case (k, v)

如何在scala中实现这一点

val a = sc.parallelize(List(("a", "aaa$$bbb"), ("b", ("ccc$$ddd$$eee"))))
val res1 = a.mapValues(_.replaceAll("\\$\\$", "-"))
这里有数组[(String,String)]

现在我希望结果如下

1,aaa
1,bbb
2,ccc
2,ddd
2,eee

提前感谢

您可以使用
flatMap

res1.flatMap{ case (k, v) => v.split("-").map((k, _)) }.collect
// res7: Array[(String, String)] = Array((a,aaa), (a,bbb), (b,ccc), (b,ddd), (b,eee))

太好了,谢谢你
res1.flatMap{ case (k, v) => v.split("-").map((k, _)) }.collect
// res7: Array[(String, String)] = Array((a,aaa), (a,bbb), (b,ccc), (b,ddd), (b,eee))