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