如何解决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 举报,一经查实,本站将立刻删除。