Разбить строку на два столбца в искровом фрейме - PullRequest
0 голосов
/ 23 января 2020

У меня есть фрейм данных со значением строки «Меня зовут Рахул». Я хочу разделить «меня зовут» в одном столбце и «Рахул» в другом столбце. Здесь нет разделителя для использования функции разделения. Как я могу сделать это в искре?

1 Ответ

0 голосов
/ 23 января 2020

Вместо функции Split, используйте функцию regexp_extract в Spark.

Regex Explanation:

(.*)\\s(.*) //capture everything into 1 capture group until last space(\s) then capture everything after into 2 capture group.

Example:

val df= Seq(("My name is Rahul")).toDF("text") //sample string

df.withColumn("col1",regexp_extract($"text","(.*)\\s(.*)",1)).
withColumn("col2",regexp_extract($"text","(.*)\\s(.*)",2)).
show()

Result:

+----------------+----------+-----+
|            text|      col1| col2|
+----------------+----------+-----+
|My name is Rahul|My name is|Rahul|
+----------------+----------+-----+
...