Skip to content

map_keys(map)

Описание

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

Параметры

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

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

Array - массив ключей карты

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

from pyspark.sql.functions import map_keys, 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_keys("map_data").alias("keys")
).show(truncate=False)

# Результат:
# +------------------------------------------+------------------------+
# |map_data                                  |keys                    |
# +------------------------------------------+------------------------+
# |{name -> John, age -> 30, salary -> 50000}|[name, age, salary]     |
# |{id -> 1, name -> Alice, value -> 100}    |[id, name, value]       |
# |{date -> 2023-01-01, amount -> 100.5, category -> expense}|[date, amount, category]|
# |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_keys("map_data").alias("keys")
).show(truncate=False)

Примечания

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