regexp(col, pattern)
Описание
Функция regexp()
проверяет, соответствует ли строка регулярному выражению. Это синоним для rlike()
и regexp_like()
.
Параметры
col
: Column - столбец со строками для проверкиpattern
: String - регулярное выражение для сопоставления
Возвращаемое значение
Boolean - TRUE, если строка соответствует регулярному выражению, иначе FALSE
Пример использования
from pyspark.sql.functions import regexp
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("regexp_example").getOrCreate()
# Создаем DataFrame
data = [
("+1 (123) 456-7890"),
("invalid_phone"),
("+44 20 7123 4567")
]
df = spark.createDataFrame(data, ["phone"])
# Проверяем соответствие номеров телефонов шаблону
result = df.select(
"phone",
regexp("phone", "^\\+[0-9]{1,3}[-\\s]?\\(?[0-9]+\\)?[-\\s]?[0-9]+[-\\s]?[0-9]+$").alias("is_valid_phone")
).show()
# Результат:
# +------------------+-------------+
# |phone |is_valid_phone|
# +------------------+-------------+
# |+1 (123) 456-7890|true |
# |invalid_phone |false |
# |+44 20 7123 4567 |true |
# +------------------+-------------+
Примечания
- Функция чувствительна к регистру
- NULL значения возвращают NULL
- Для извлечения подстрок по регулярному выражению используйте
regexp_extract()
- Для замены по регулярному выражению используйте
regexp_replace()
- Для подсчета совпадений используйте
regexp_count()