У меня есть следующий код Spark SQL:
select f.typ_fact c
case when month(f.dat_valid) in (1,2,3) then 'Q1'
else month(f.dat_valid) in (4, 5, 6) then 'Q2'
else month(f.dat_valid) in (7, 8, 9) then 'Q3'
else 'Q4'
end as quarter_valid,
Но я получаю следующее исключение, сообщающее о несовпадении ввода.
org.apache.spark.sql.catalyst.parser.ParseException:
mismatched input 'isnull' expecting {<EOF>, ',', 'FROM', 'WHERE', 'GROUP', 'ORDER', 'HAVING', 'LIMIT', 'LATERAL', 'WINDOW', 'UNION', 'EXCEPT', 'MINUS', 'INTERSECT', 'SORT', 'CLUSTER', 'DISTRIBUTE'}(line 1, pos 17)
== SQL ==
select case when isnull('2018-02-01') in (1,2,3) then 'Q1'
-----------------^^^
else ("2018-02-01") in (4, 5, 6) then 'Q2'
else ("2018-02-01") in (7, 8, 9) then 'Q3'
else 'Q4'
end as quarter_valid
at org.apache.spark.sql.catalyst.parser.ParseException.withCommand(ParseDriver.scala:217)
at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parse(ParseDriver.scala:114)
at org.apache.spark.sql.execution.SparkSqlParser.parse(SparkSqlParser.scala:48)
at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parsePlan(ParseDriver.scala:68)
at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:623)
at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:691)