Regex 如何在Scala Spark中用N/A替换空字符串?
我正在尝试一个由来已久的问题,用N/a替换Spark Scala数据帧中某列中的空字符串,但没有效果 原始数据帧:Regex 如何在Scala Spark中用N/A替换空字符串?,regex,scala,apache-spark,apache-spark-sql,Regex,Scala,Apache Spark,Apache Spark Sql,我正在尝试一个由来已久的问题,用N/a替换Spark Scala数据帧中某列中的空字符串,但没有效果 原始数据帧: +----------+--------------+ |Testing ID|Test this Code| +----------+--------------+ | 545242| ""| | 643533| 994A| | 856563| ""| +---
+----------+--------------+
|Testing ID|Test this Code|
+----------+--------------+
| 545242| ""|
| 643533| 994A|
| 856563| ""|
+----------+--------------+
我尝试的第一个代码:
val a = sssd.withColumn("Test this Code", when($"Test this Code" === "", lit("N/A")).otherwise($"Test this Code"))
但什么也没发生,没有观察到任何变化。因此,我尝试了另一种方法,使用regexp_replace,代码:
但是,输出非常奇怪,如下所示:
+----------+------------------------+
|Testing ID| Test this Code|
+----------+------------------------+
| 545242| N/A"N/A"N/A|
| 643533| 994A|
| 856563| N/A"N/A"N/A|
+----------+------------------------+
我看了其他的SO答案,但没用,有什么帮助吗?试试这个。我怀疑这不是一个空字符串,而是一个由两个引号组成的字符串
val a = sssd.withColumn("Test this Code", when($"Test this Code" === "\"\"", lit("N/A")).otherwise($"Test this Code"))
明亮的我也怀疑同样的情况,尝试了多种排列方式“作为字符串,但无法形成您给出的确切正则表达式。在python中,它很简单,”(单引号-双引号-单引号),但在Scala中不起作用。非常感谢您的快速帮助!
val a = sssd.withColumn("Test this Code", when($"Test this Code" === "\"\"", lit("N/A")).otherwise($"Test this Code"))