Skip to content

map_values(map)

Описание

Функция map_values() возвращает массив значений из заданной карты.

Параметры

  • map: Map - карта, из которой извлекаются значения

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

Array - массив значений карты

Пример использования

from pyspark.sql.functions import map_values, create_map, lit

# Создаем DataFrame с картами
df = spark.createDataFrame([
    ({"name": "John", "age": 30, "salary": 50000},),
    ({"id": 1, "name": "Alice", "value": 100},),
    ({"date": "2023-01-01", "amount": 100.5, "category": "expense"},),
    (None,)
], ["map_data"])

# Получаем значения карты
df.select(
    "map_data",
    map_values("map_data").alias("values")
).show(truncate=False)

# Результат:
# +------------------------------------------+------------------------+
# |map_data                                  |values                  |
# +------------------------------------------+------------------------+
# |{name -> John, age -> 30, salary -> 50000}|[John, 30, 50000]      |
# |{id -> 1, name -> Alice, value -> 100}    |[1, Alice, 100]        |
# |{date -> 2023-01-01, amount -> 100.5, category -> expense}|[2023-01-01, 100.5, expense]|
# |null                                      |null                    |
# +------------------------------------------+------------------------+

# Пример с разными типами значений
df = spark.createDataFrame([
    ({"a": 1, "b": 2, "c": 3},),
    ({"x": 10.5, "y": 20.0, "z": 30.75},)
], ["map_data"])

df.select(
    "map_data",
    map_values("map_data").alias("values")
).show(truncate=False)

Примечания

  • Если карта NULL, возвращается NULL
  • Порядок значений в массиве не гарантируется
  • Для получения ключей карты используйте map_keys()
  • Для получения записей карты используйте map_entries()
  • Для проверки наличия ключа используйте map_contains_key()