map_contains_key(col, value)
Описание
Функция map_contains_key()
проверяет, содержит ли карта указанный ключ. Возвращает true, если ключ найден, false - если не найден, и null - если карта null.
Параметры
col
: Column - карта для проверкиvalue
: значение - ключ для поиска
Возвращаемое значение
Boolean - true, если ключ найден, false - если не найден, null - если карта null
Пример использования
from pyspark.sql.functions import map_contains_key, create_map, lit
# Создаем DataFrame с картами
df = spark.createDataFrame([
(create_map("a", 1, "b", 2),),
(create_map("c", 3, "d", 4),),
(None,)
], ["map_col"])
# Проверяем наличие ключей
df.select(
"map_col",
map_contains_key("map_col", "a").alias("has_a"),
map_contains_key("map_col", "c").alias("has_c"),
map_contains_key("map_col", "e").alias("has_e")
).show(truncate=False)
# Результат:
# +----------------+-----+-----+-----+
# |map_col |has_a|has_c|has_e|
# +----------------+-----+-----+-----+
# |{a -> 1, b -> 2}|true |false|false|
# |{c -> 3, d -> 4}|false|true |false|
# |null |null |null |null |
# +----------------+-----+-----+-----+
# Пример с разными типами ключей
df = spark.createDataFrame([
(create_map(1, "one", 2, "two"),),
(create_map(3, "three", 4, "four"),)
], ["number_map"])
df.select(
"number_map",
map_contains_key("number_map", 1).alias("has_1"),
map_contains_key("number_map", 5).alias("has_5")
).show(truncate=False)
Примечания
- Сравнение ключей чувствительно к регистру для строк
- Для NULL карты возвращается NULL
- Для получения всех ключей карты используйте
map_keys()
- Для получения всех значений карты используйте
map_values()
- Для получения всех записей карты используйте
map_entries()
- Для создания карты используйте
create_map()