when语句中使用自定义项,它是否将自定义项应用于所有记录,然后应用case-when过滤器?

v8wbuo2f  于 2021-05-29  发布在  Spark
关注(0)|答案(0)|浏览(243)

我编写了一个查询,在某些情况下调用udf函数,对于rest值,它应该给出else部分。但根据物理计划,它显示它对列的所有值运行udf,然后根据“when”条件过滤记录。
示例查询:spark.sql(“select*,case when col1 in('1','2'),then calludf(col1)else col2 end from table”)
因此,如果col1在列表中,那么应该调用udf并返回值,如果不是,则返回另一列的值。
在正常情况下,您不会遇到任何问题,但是如果您的udf只需要一组值,那么它就会失败,因为它不需要其他值。
是否有其他解决方法请分享您的想法。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题