create_map(*cols)
Описание
Функция create_map() создает новый столбец карты (MapType) из чередующихся ключей и значений. Количество аргументов должно быть четным, где нечетные позиции - ключи, а четные - значения.
Параметры
*cols: Column - чередующиеся столбцы ключей и значений
Возвращаемое значение
Map - карта, содержащая пары ключ-значение
Пример использования
from pyspark.sql.functions import create_map, lit
# Создаем DataFrame
df = spark.createDataFrame([
(1, "a", 10),
(2, "b", 20),
(3, "c", 30)
], ["id", "letter", "value"])
# Создаем карты из столбцов
df.select(
"id",
create_map("letter", "value").alias("letter_value_map"),
create_map("id", "letter").alias("id_letter_map")
).show(truncate=False)
# Результат:
# +---+----------------+------------+
# |id |letter_value_map|id_letter_map|
# +---+----------------+------------+
# |1 |{a -> 10} |{1 -> a} |
# |2 |{b -> 20} |{2 -> b} |
# |3 |{c -> 30} |{3 -> c} |
# +---+----------------+------------+
# Пример с литералами
df.select(
create_map(lit("key1"), lit(1), lit("key2"), lit(2)).alias("literal_map")
).show(truncate=False)
Примечания
- Количество аргументов должно быть четным
- Ключи должны быть одного типа данных
- Значения должны быть одного типа данных
- Для получения ключей карты используйте
map_keys() - Для получения значений карты используйте
map_values() - Для проверки наличия ключа используйте
map_contains_key()