2017-08-22 133 views
-1

關鍵的數據我怎麼能在Scala中實現這一地圖和斯普利特基於在星火斯卡拉

val a = sc.parallelize(List(("a", "aaa$$bbb"), ("b", ("ccc$$ddd$$eee")))) 
val res1 = a.mapValues(_.replaceAll("\\$\\$", "-")) 

這裏我有數組[(字符串,字符串)]

Array[(String, String)] = Array(("a",aaa-bbb), ("b",ccc-ddd-eee)) 

現在我想要的結果是,如下

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

預先感謝

回答

2

您可以使用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)) 
+1

太好了,謝謝Psidom – Babu