Skip to content

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