Scala Spark:如何将Array[(String,String,String)]转换为Map[String,Ma



我想转换一个数组(String,String,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"))
)

首先,在这种情况下,Map("elem2" -> "elem3")不是一个好的选择,就我所能推断的而言,元组会更好(如果它只保留键值,就像你的问题一样)。无论如何,您需要遍历数组,并更新类型为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来解决你的问题。

相关内容

  • 没有找到相关文章

最新更新