我正在尝试在我的 scala-spark 代码中使用 NVL2 和 NULLIF spark sql 函数,但它不起作用。
这是我看到的 下面的语句工作正常并返回正确的结果
spark.sql("select columnName, NULLIF(columnName, 'abc') as status from df")
但是,这条语句失败并返回以下错误-
df.withColumn('status', NULLIF(columnName, 'abc'))
错误:未找到:值 NULLIF
尝试在 withColumn() 语法中使用 NULLIF、NVL2、LEAST 和 GREATEST 函数时,我遇到了类似的问题。我错过了什么吗?我试过了
import org.apache.spark.sql.functions._
import org.apache.spark.sql.catalyst.expressions._
import org.apache.spark.sql.catalyst.analysis._
在我的 Scala 代码中,但没有任何帮助。
最佳答案
Scala Spark 函数库没有这些函数,但是 spark sql 库有这些函数。这就是您无法用作 spark 函数 API 的原因。
https://spark.apache.org/docs/2.0.2/api/java/org/apache/spark/sql/functions.html
isNull
函数存在,可以结合 when/then 子句来设置值。
希望对你有帮助。
关于scala - 在 Scala SparkSQL 中使用 NVL2 和 NULLIF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485530/