Мой фрейм данных выглядит так:
+-------------------+-------------+
| Nationality| continent|
+-------------------+-------------+
| Turkmenistan| Asia|
| Azerbaijan| Asia|
| Canada|North America|
| Luxembourg| Europe|
| Gambia| Africa|
Мой вывод должен выглядеть следующим образом:
Map(Gibraltar -> Europe, Haiti -> North America)
Итак, я пытаюсь преобразовать фрейм данных в
scala.collection.mutable.Map[String, String]()
Я пытаюсь использовать следующий код:
var encoder = Encoders.product[(String, String)]
val countryToContinent = scala.collection.mutable.Map[String, String]()
var mapped = nationalityDF.mapPartitions((it) => {
....
....
countryToContinent.toIterator
})(encoder).toDF("Nationality", "continent").as[(String, String)](encoder)
val map = mapped.rdd.groupByKey.collect.toMap
Но у карты результата есть следующий вывод:
Map(Gibraltar -> CompactBuffer(Europe), Haiti -> CompactBuffer(North America))
Как я могу получить результат хеш-картыбез CompactBuffer?