我有一个数据框df:[id, value : map<string, int>]
id :1
value : ("item1" -> 2)
id :1
value : ("item2" -> 3)
如何基于id合并地图,以便我可以
id : 1
value : { "item1" : 2, "item2" : 3}
我可以使用任何实用功能,或者有人能告诉我更好的方法吗?
我尝试使用reduceByKey
case class Data (itemMap : Map[String, Int]) extends Serializable
df.map{
case r =>
val id = r.getAs[String]("id")
val Value = r.getAs[Map[String, Int]]("value")
(id, Value)
}.reduceByKey((x, y) => x ++ y).map{
case (k, v) =>
(k, JacksonUtil.toJson(Data(v)))
}