Spark 2.0 и Scala - разделить колонку с помощью регулярных выражений - PullRequest
0 голосов
/ 14 октября 2019

У меня есть столбец в Spark Dataframe со значениями вроде

\64192\164169
\64192\164345
\64192\164190
\34193\164169

Я пытаюсь разбить строку с помощью '\' и получить последнюю строку в том же столбце, как

164169
164345
164190
164169

использование '/' в регулярных выражениях становится хитрым, может кто-нибудь, пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 14 октября 2019

с использованием "\\" для разделения данных и использования функции реверса для выбора последних

scala> import org.apache.spark.sql.functions._

и импорта в IDE

import spark.implicits._

scala> df_v.show
+-------------+
|         test|
+-------------+
|\64192\164169|
|\64192\164345|
|\64192\164190|
|\34193\164169|
+-------------+
scala> df_v.withColumn("folder",reverse(split($"test","\\\\"))(0)).show
+-------------+------+
|         test|folder|
+-------------+------+
|\64192\164169|164169|
|\64192\164345|164345|
|\64192\164190|164190|
|\34193\164169|164169|
+-------------+------+

Надеюсь, это поможет вам. дайте мне знать, если вам нужна помощь для того же

0 голосов
/ 14 октября 2019
scala> val df = Seq("\\64192\\164169").toDF()
df: org.apache.spark.sql.DataFrame = [value: string]

scala> df.show()
+-------------+
|        value|
+-------------+
|\64192\164169|
+-------------+


scala> df.select(split('value,"\\\\")(1)).show()
+-------------------+
|split(value, \\)[1]|
+-------------------+
|              64192|
+-------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...