Как создать карту с фреймом данных? - PullRequest
0 голосов
/ 25 июня 2018

У меня есть датафрейм, df.show () примерно так:

+-----------+-------------------+
|id|                        name|
+-----------+-------------------+
|       1231|                aa |
|       1232|                bb |
|       1233|                cc |
|       1234|                dd |
|       1235|                 dd|
|       1236|                 cc|
+-----------+-------------------+

столбец "id" уникален, теперь я бы создал карту с ключом "id"", значение есть" имя ", как реализовать это с помощью Scala?предположим, что имя фрейма данных df.

val mapResult = df.map(...)

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете просто преобразовать в rdd и использовать collectAsMap

df.rdd.map(x => (x.getInt(0), x.getString(1))).collectAsMap()

Это даст вам

scala>  df.rdd.map(x => (x.getInt(0), x.getString(1))).collectAsMap()
res0: scala.collection.Map[Int,String] = Map(1231 -> aa, 1234 -> dd, 1236 -> cc, 1233 -> cc, 1232 -> bb, 1235 -> dd)

collectAsMap рекомендуется только тогда, когда ваши данные помещаются в драйвер.

Надеюсь, это поможет!

...