Spark SQL:在WHERE子句中指定由UDF生成的列名

时间:2017-07-04 07:40:20

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

我编写了一个UDF函数,它将在处理2列后返回一列(0或1)。我需要使用我的选择查询,以便返回此值为1的记录。 我写了如下查询:

SELECT number, myUDF(col1, col2) as result
    FROM mytable 
    WHERE result is not null 

但是它无法识别列名“结果”。是否需要任何特殊语法才能识别此新输出列?感谢。

1 个答案:

答案 0 :(得分:1)

CASE声明应解决此问题:

SELECT number, CASE when myUDF(col1, col2) = 1 then myUDF(col1, col2) END as result FROM mytable