繁体   English   中英

Spark 2.0 & Scala - 通过正则表达式拆分列

[英]Spark 2.0 & Scala - Split the Column by regex

我在 Spark Dataframe 中有一个列,其值如下

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

我正在尝试用 '\' 拆分字符串并获取同一列中的最后一个字符串,例如

164169
164345
164190
164169

在正则表达式中使用“/”变得越来越棘手,有人可以帮忙吗

使用"\\"拆分数据并使用反向 function 确保 select 最后

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|
+-------------+------+

希望这对您有所帮助。 如果您需要任何帮助,请告诉我

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|
+-------------------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM