like(str, pattern[, escapeChar])
Описание
Функция like()
проверяет, соответствует ли строка шаблону с учетом регистра. Поддерживает специальные символы: - % - любое количество символов - _ - один символ - escapeChar - символ экранирования (по умолчанию '\')
Параметры
str
: string или Column - строка для проверкиpattern
: string или Column - шаблон для сравненияescapeChar
: string (опционально) - символ экранирования
Возвращаемое значение
Boolean - true
, если строка соответствует шаблону, false
в противном случае
Пример использования
from pyspark.sql.functions import like
# Создаем DataFrame
df = spark.createDataFrame([
("Hello World",),
("hello world",),
("HELLO WORLD",),
("Hello",),
("World",),
(None,)
], ["text"])
# Проверяем соответствие шаблону
df.select(
"text",
like("text", "Hello%").alias("starts_with_hello"),
like("text", "%World").alias("ends_with_world"),
like("text", "%llo%").alias("contains_llo"),
like("text", "Hello_World").alias("exact_match")
).show()
# Результат:
# +-----------+------------------+----------------+-------------+-----------+
# | text|starts_with_hello|ends_with_world|contains_llo|exact_match|
# +-----------+------------------+----------------+-------------+-----------+
# |Hello World| true| true| true| true|
# |hello world| false| false| false| false|
# |HELLO WORLD| false| false| false| false|
# | Hello | true| false| true| false|
# | World | false| true| false| false|
# | null| null| null| null| null|
# +-----------+------------------+----------------+-------------+-----------+
# Пример с экранированием
df.select(
like("text", "Hello\\%World", "\\").alias("escaped_percent")
).show()
Примечания
- Поиск чувствителен к регистру
- Если любой из аргументов NULL, результат NULL
- Для поиска без учета регистра используйте
ilike()
- Для поиска с использованием регулярных выражений используйте
rlike()
- Функция полезна для поиска с использованием шаблонов
- Экранирование необходимо для поиска специальных символов (% и _)