Skip to content

map

Теги: array functions pyspark

Описание

Функция map() создает новый столбец типа Map из пар ключ-значение.

Параметры

  • *cols: Column - пары ключ-значение (ключ1, значение1, ключ2, значение2, ...)

Возвращаемое значение

Column - Map с указанными парами ключ-значение

Пример

from pyspark.sql import SparkSession
from pyspark.sql.functions import map, lit

# Создаем Spark сессию
spark = SparkSession.builder.appName("map_example").getOrCreate()

# Создаем DataFrame
data = [(1,), (2,), (3,)]
df = spark.createDataFrame(data, ["id"])

# Создаем Map с парами ключ-значение
df = df.withColumn("map_col", map(
    lit("key1"), lit("value1"),
    lit("key2"), lit("value2")
))
df.show(truncate=False)

# Вывод:
# +---+--------------------------------+
# |id |map_col                         |
# +---+--------------------------------+
# |1  |{key1 -> value1, key2 -> value2}|
# |2  |{key1 -> value1, key2 -> value2}|
# |3  |{key1 -> value1, key2 -> value2}|
# +---+--------------------------------+

Примечания

  • Количество аргументов должно быть четным
  • Ключи и значения могут быть разных типов
  • Возвращает NULL, если любой из аргументов NULL
  • Полезно для создания структур данных с парами ключ-значение
  • Для доступа к значениям используйте map_col["key"]
  • Для преобразования в строку используйте to_json