-4
鑑於此集合:去正規化地圖類型
("user1",Map("Gobelin" -> "2","Archers" ->"3"))
("user2",Map("Giant" -> "1"))
我想要的輸出看起來像這樣
("user1","Gobelin","2")
("user1","Archers","3")
("user2","Giant","1")
我怎樣才能達致這與火花?
鑑於此集合:去正規化地圖類型
("user1",Map("Gobelin" -> "2","Archers" ->"3"))
("user2",Map("Giant" -> "1"))
我想要的輸出看起來像這樣
("user1","Gobelin","2")
("user1","Archers","3")
("user2","Giant","1")
我怎樣才能達致這與火花?
最有可能你正在尋找flatMapValues
:
val rdd = sc.parallelize(
("user1",Map("Gobelin" -> "2","Archers" ->"3")) ::
("user2",Map("Giant" -> "1")) :: Nil)
rdd.flatMapValues(identity[Map[String, String]])
或explode
:
rdd.toDF.select($"_1", explode($"_2")).as[(String, String, String)].rdd