如何在SparkSQL中模仿ZEROIFNULL的功能

时间:2018-01-25 08:57:42

标签: apache-spark pyspark apache-spark-sql

Teradata有一个名为ZEROIFNULL的函数,它的名称表明,如果列的值为NULL,则返回零。在类似的路线上,还有一个名为NULLIFZERO的函数。

我想在SparkSQL中模仿/模拟这些功能(不使用数据帧或RDD API,而是希望在SparkSQL中使用它们,直接传递SQL。)

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

尝试

sqlContext.sql("select COALESCE(column,0)")

如果列为NULL,则返回零。

要模仿NULLIFZERO,您可以使用case when

select case when col=0 then NULL end from tbl