【发布时间】:2018-12-21 15:42:50
【问题描述】:
我有一张包含一些主数据的地图(id->description): val map1: Map[String, String] = Map("001" -> "ABCD", "002" -> "MNOP", "003" -> "WXYZ")
我有另一个包含一些其他主数据的地图(id->description): val map2: Map[String, String] = Map("100" -> "Ref1", "200" -> "Ref2", "300" -> "Ref3")
我有一个如下的结果映射,它是从一些数据集派生的,该数据集产生了以下映射,其中 map1 和 map2 的 id 已被组合用于确定键,准确地说是从 id 分组派生的映射从上述两个地图中,然后累积金额:
val map3:Map[(String, String),Double] = Map(("001","200")->3452.30,("003","300")->78484.33,("002", “777”)-> 893.45)
我需要一个 Map 中的输出,如下所示: ("ABCD","Ref2")->3452.30,("WXYZ","Ref3")->78484.33,("MNOP","777") -> 893.45)
我一直在尝试这个:
val map5 = map3.map(obj => {
(map1 getOrElse(obj._1._1, "noMatchMap1"))
(map2 getOrElse(obj._1._2, "noMatchMap2"))
} match {
case "noMatchMap1" => obj
case "noMatchMap2" => obj
case value => value -> obj._2
})
【问题讨论】:
标签: scala dictionary join mapping scala-collections