嵌套地图的处理

时间:2020-07-23 10:50:43

标签: scala databricks

我有一个Map,其中的键包含另一个Map。 即-

val myDetailsMap = Map("name" -> "abc",
                       "class" -> "10",
                       "section" -> "A",
                       "marksPerSubjectId" -> Map(101 -> "Physics= '70' AND Chemistry='80'",
                                                  102 -> "History= '60' AND Civics = '67'"),
                       "status" -> "pass")

现在,我想使用marksPerSubjectId遍历包含另一个MAP的foreach键。我应该如何进行?

在Databricks上- enter image description here

1 个答案:

答案 0 :(得分:0)

使用模式匹配怎么办?

在Scala 2.13中:

myDetailsMap.foreachEntry{ (k, v) =>
  v match {
    case map: Map[_, _] => map.foreachEntry{ (k, v) => println(v)}
    case other => println(other)
  }
}

在Scala 2.11中:

myDetailsMap.foreach{ case (k, v) =>
  v match {
    case map: Map[_, _] => map.foreach{ case (k, v) => println(v)}
    case other => println(other)
  }
}