-1
如何在Scala中創建鍵/值數組對。我的意思是代替價值,我需要一個數組。創建鍵/值 - 數組對Scala/Spark
val newRdd1 = rdd1.flatMap(x=>x.split(" "))
.map({case (key, Array(String)) => Array(String) })
如何在Scala中創建鍵/值數組對。我的意思是代替價值,我需要一個數組。創建鍵/值 - 數組對Scala/Spark
val newRdd1 = rdd1.flatMap(x=>x.split(" "))
.map({case (key, Array(String)) => Array(String) })
你可以使用map()來實現它,它在普通的scala程序或Scala-in-SparkContext中都是類似的。
例如,你有字符串的列表:
var sRec = List("key1,a1,a2,a3", "key2,b1,b2,b3", "key3,c1,c2,c3")
可以把它分解&轉換到鍵/值(字符串數組)假設鍵是在第0位,採用:
sRec.map(x => (x.split(",")(0), Array(x.split(",")(1), x.split(",")(2), x.split(",")(3)))).
foreach(println)
(key1,[Ljava.lang.String;@7a81197d)
(key2,[Ljava.lang.String;@5ca881b5)
(key3,[Ljava.lang.String;@24d46ca6)
如果你想讀的關鍵某個特定數組元素:
sRec.map(x => (x.split(",")(0),Array(x.split(",")(1), x.split(",")(2), x.split(",")(3)))).
map(x => (x._1, x._2(0))).foreach(println)
輸出:
(key1,a1)
(key2,b1)
(key3,c1)
歡迎來到StackOverflow!請閱讀https://stackoverflow.com/help/asking以確保您提供了人們能夠提供幫助所需的全部信息。具體來說 - 你有什麼嘗試?你卡在哪裏?你在網上搜索了答案嗎? –