split_part(str, delimiter, partNum)
Описание
Функция split_part()
разделяет строку по указанному разделителю и возвращает указанную часть.
Параметры
str
: Column - строка для разделенияdelimiter
: String - разделительpartNum
: Integer - номер части для возврата (начинается с 1)
Возвращаемое значение
String - указанная часть строки
Пример использования
from pyspark.sql.functions import split_part
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("split_part_example").getOrCreate()
# Создаем DataFrame
data = [
("A", "hello,world,spark"),
("B", "python,sql,data"),
("C", "one,two,three")
]
df = spark.createDataFrame(data, ["id", "text"])
# Разделяем строки и получаем указанные части
result = df.select(
"id",
split_part("text", ",", 1).alias("part1"),
split_part("text", ",", 2).alias("part2"),
split_part("text", ",", 3).alias("part3")
).show()
# Результат:
# +---+-----+-----+-----+
# |id |part1|part2|part3|
# +---+-----+-----+-----+
# |A |hello|world|spark|
# |B |python|sql |data |
# |C |one |two |three|
# +---+-----+-----+-----+
Примечания
- Если указанный номер части больше количества частей, возвращается пустая строка
- Для разделения строки на массив подстрок используйте
split()
- Для объединения массива строк в одну строку используйте
array_join()
- Для работы с регулярными выражениями используйте
regexp_extract()