我正在尝试使用Scala从Cassandra到Spark选择时转换数据。
选择数据时,我想转换数据,根据值将计数放入特定的count_ *列。
我无法找到与Spark SQL一起使用的IF / CASE语句。有什么想法吗?
val results = csc.sql("
SELECT trip_sell_key, trip_veh_key, idle_stop_date, COUNT(*),
SUM (case when idle_stop_duration >= 0
and idle_stop_duration < 5 then 1 else 0 end)
from veh_trip"
)
答案 0 :(得分:0)
我甚至不确定您的SQL是否对SparkSQL有效。不要记得SparkSQL是否支持case else
语句。
另一点是COUNT(*)
和SUM(...)
是聚合函数,它们只能与GROUP BY
子句一起使用,这在您的语句中缺失