У меня есть фрейм данных 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)))
}
scala,apache-spark,dataframe,group-by,rdd,
У меня есть фрейм данных 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)))
}
00Scala, апаш-искра, dataframe, группа мимо, РДД,