【发布时间】:2016-09-28 19:32:31
【问题描述】:
我想运行一个 case 语句,该语句根据 Spark SQL 中的条件运行不同的 SELECT 语句,但无法获得正确的语法。
我的SQL语句是这样的
registerTable(sql="SELECT CASE WHEN typedKeyword > '' THEN (SELECT * FROM `temp.sdf0` WHERE originalKeyword > ''AND keyword > '' AND deviceType = 'devicetype' ) ELSE (SELECT * FROM `temp.tes` WHERE originalKeyword > ''AND keyword > '' ) END ",alias="temp.test")
我不知道 spark SQL 是否支持 CASE 语句,那么如何实现这一点
【问题讨论】:
-
您不能将完整的选择放入 CASE
-
您应该在逻辑中处理它并根据输入执行 2 个不同的查询
-
谢谢。如果可能的话只是感兴趣
-
或者解决这个问题的最佳方法是创建一个存储过程来处理 SQL 中不支持的 2 个不同的查询。
标签: mysql apache-spark apache-spark-sql