我正在尝试使用WHERE子句中spark sql(spark 2.0.0)中'as'给出的参数名称,如下所示:
val ds = spark.createDataset[Int](List(1,2,3)) ;
ds.createOrReplaceTempView("VIEW")
ds.sparkSession.sql("SELECT count(*) as total FROM VIEW WHERE total > 1").show()
然而,我得到了这个例外:
cannot resolve '`total`' given input columns: [value]; line 1 pos 41
似乎spark不尊重我给分组列的标识符。这是目前超出火花范围还是我做错了什么?
答案 0 :(得分:1)
VIEW
中select <fieldtogroupon>, count(*) as total
from VIEW
group by <fieldtogroupon>
having count(*) > 1
是已定义的列,还是您尝试过滤count(*)的值?如果要计算然后对该计数进行过滤,则语法应为:
{{1}}