我想將(String,String,String)的陣列轉換為Map[String,Map[String,String]]。
例子 :
輸入
val inputArray: Array[(String,String,String)] = Array(("elem1","elem2","elem3"),("elem4","elem5","elem6"))
期望的輸出
val outputMap: Map[String, Map[String, String]] = Map(
("elem1", Map("elem2" -> "elem3")),
("elem4", Map("elem5" -> "elem6"))
)
uj5u.com熱心網友回復:
首先,Map("elem2" -> "elem3")在這種情況下,這不是一個好的選擇,據我所知,元組會更好(如果它僅適用于您的問題中的鍵值)。無論如何,您需要遍歷陣列,并更新 type 的狀態Map[String, Map[String, String]],就像這樣:
inputArray.foldLeft(Map.empty[String, Map[String, String]]) {
case (updatingMap, (elem, key, value)) =>
updatingMap.updated(elem, Map(key -> value))
}
此外,現在的問題與 spark 無關,除非您明確宣告它與 spark 相關的位置,或者您可能希望在資料幀上使用 spark api 解決您的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/496934.html
上一篇:sbtval不止一次評估
