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