使用SparkSQL和Cassandra时的IF / Case语句

时间:2016-04-07 19:56:56

标签: scala apache-spark cassandra

我正在尝试使用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"
)

1 个答案:

答案 0 :(得分:0)

我甚至不确定您的SQL是否对SparkSQL有效。不要记得SparkSQL是否支持case else语句。

另一点是COUNT(*)SUM(...)是聚合函数,它们只能与GROUP BY子句一起使用,这在您的语句中缺失