Добавить столбец в существующий столбец MapType - PullRequest
0 голосов
/ 11 июля 2019

У меня есть датафрейм с несколькими столбцами.Одним из них является карта (MapType).Ключи внутри этого столбца карты отличаются от строки к строке.Это означает, что что-то вроде этого возможно:

+----------+-----------------+
|     col_1|            col_2|
+----------+-----------------+
|         7| key_1 -> value_1|
|         5| key_2 -> value_2|
|         4| key_3 -> value_3|
+----------+-----------------+

Что я хочу сделать, это добавить первый столбец к этому столбцу карты, чтобы получить что-то вроде:

+----------+-----------------------------+
|     col_1|                        col_2|
+----------+-----------------------------+
|         7| key_1 -> value_1, col_1 -> 7|
|         5| key_2 -> value_2, col_1 -> 5|
|         4| key_3 -> value_3, col_1 -> 4|
+----------+-----------------------------+

Но я не могу понятьКак добавить первый столбец на карту, сохраняя при этом отдельные ключи внутри столбца карты.

1 Ответ

0 голосов
/ 11 июля 2019

С версией 2.4.0 у вас есть доступ к множеству новых функций для управления типами карт.

Предполагая, что df является вашим фреймом данных:

from pyspark.sql import functions as F

df.withColumn(
    "col_2",
    F.map_concat(
        F.col("col_2"),
        F.map_from_entries(F.array(F.struct(F.col("col_1"))))
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...