基于Spark Scala中的键映射和拆分数据
如何在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)
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))