Skip to content

substring_index(col, delim, count)

Описание

Функция substring_index() возвращает подстроку из строки до указанного количества вхождений разделителя.

Параметры

  • col: Column - столбец со строками
  • delim: String - разделитель
  • count: Integer - количество вхождений разделителя:
  • положительное число: возвращает подстроку до N-го вхождения разделителя
  • отрицательное число: возвращает подстроку после N-го вхождения разделителя с конца

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

String - подстрока до или после указанного количества вхождений разделителя

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

from pyspark.sql.functions import substring_index
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("substring_index_example").getOrCreate()

# Создаем DataFrame
data = [
    ("www.example.com"),
    ("mail.google.com"),
    ("docs.python.org")
]
df = spark.createDataFrame(data, ["url"])

# Извлекаем подстроки
result = df.select(
    "url",
    substring_index("url", ".", 1).alias("first_part"),
    substring_index("url", ".", -1).alias("last_part")
).show()

# Результат:
# +---------------+----------+---------+
# |url            |first_part|last_part|
# +---------------+----------+---------+
# |www.example.com|www       |com      |
# |mail.google.com|mail      |com      |
# |docs.python.org|docs      |org      |
# +---------------+----------+---------+

Примечания

  • Если разделитель не найден, возвращается вся строка
  • Если count равен 0, возвращается пустая строка
  • NULL значения возвращают NULL
  • Для разделения строки на части используйте split()
  • Для извлечения подстроки по позиции используйте substr()