微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark-替换列值-正则表达式模式值具有斜线值-如何处理?

如何解决Spark-替换列值-正则表达式模式值具有斜线值-如何处理?

数据框:

+-------------------+-------------------+
|               Desc|   replaced_columns|
+-------------------+-------------------+
|India is my Country|India is my Country|
| Delhi is my Nation| Delhi is my Nation|
| I love India\Delhi| I love India\Delhi|
|         I love USA|         I love USA|
|I am stay in USA\SA|I am stay in USA\SA|
+-------------------+-------------------+

“ Desc”列是DataFrame中的原始列名。 replace_columns是在我们进行了一些转换之后。在desc列中,我需要将“ India \ Delhi”值替换为“-”。我尝试了下面的代码

dataDF.withColumn("replaced_columns",regexp_replace(dataDF("Desc"),"India\\Delhi","-")).show() 

它不替换为“-”字符串。我该怎么办?

解决方法

针对以上问题,我发现了3种方法:

val approach1 = dataDF.withColumn("replaced_columns",regexp_replace(col("Desc"),"\\\\","-")).show() // (it should be 4 backslash in actual while running in IDE)

val approach2 = dataDF.select($"Desc",translate($"Desc","\\","-").as("replaced_columns")).show()

下面的内容是您在上面要求的特定记录-(在desc列中,我需要将"India\Delhi"的值替换为"-"。我尝试了下面的代码。)>

val approach3 = dataDF
   .withColumn("replaced_columns",when(col("Desc").like("%Delhi"),"-")).otherwise(col("Desc")))
    .show()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。