Skip to content

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()