Skip to content

contains(left, right)

Описание

Функция contains() проверяет, содержит ли строка left подстроку right. Возвращает true, если подстрока найдена, и false в противном случае.

Параметры

  • left: string или Column - строка, в которой ищется подстрока
  • right: string или Column - подстрока, которую нужно найти

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

Boolean - true, если подстрока найдена, false в противном случае

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

from pyspark.sql.functions import contains

# Создаем DataFrame
df = spark.createDataFrame([
    ("Hello World", "World"),
    ("Hello World", "world"),
    ("Hello World", "Hello"),
    ("Hello World", "Python"),
    ("Hello World", None),
    (None, "World")
], ["text", "substring"])

# Проверяем наличие подстрок
df.select(
    "text",
    "substring",
    contains("text", "substring").alias("contains")
).show()

# Результат:
# +-----------+---------+--------+
# |       text|substring|contains|
# +-----------+---------+--------+
# |Hello World|    World|    true|  # Подстрока найдена
# |Hello World|    world|   false|  # Регистр имеет значение
# |Hello World|    Hello|    true|  # Подстрока найдена
# |Hello World|   Python|   false|  # Подстрока не найдена
# |Hello World|     null|    null|  # NULL в подстроке
# |       null|    World|    null|  # NULL в основном тексте
# +-----------+---------+--------+

Примечания

  • Поиск чувствителен к регистру
  • Если любой из аргументов NULL, результат NULL
  • Функция эквивалентна использованию оператора instr() > 0
  • Для поиска без учета регистра используйте ilike()
  • Для поиска с использованием регулярных выражений используйте rlike()