在spark sql的'WHERE'子句中使用'as'

时间:2016-08-26 18:30:36

标签: apache-spark-sql

我正在尝试使用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不尊重我给分组列的标识符。这是目前超出火花范围还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

VIEWselect <fieldtogroupon>, count(*) as total from VIEW group by <fieldtogroupon> having count(*) > 1 是已定义的列,还是您尝试过滤count(*)的值?如果要计算然后对该计数进行过滤,则语法应为:

{{1}}