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