spark sql的窗口函数在线文档包括以下示例:
https://databricks.com/blog/2015/07/15/introducing-window-functions-in-spark-sql.html
SELECT
product,
category,
revenue
FROM (
SELECT
product,
category,
revenue,
dense_rank() OVER (PARTITION BY category ORDER BY revenue DESC) as rank
FROM productRevenue) tmp
WHERE
rank <= 2
我创建了一个类似结构的sql。但它不起作用
select id,r from (
select id, name,
rank() over (partition by name order by name) as r
from tt) v
where v.r >= 7 and v.r <= 12
错误如下:
Exception in thread "main" java.lang.RuntimeException: [3.25]
failure: ``)'' expected but `(' found
rank() over (partition by fp order by fp) as myrank
^
有人能看到它们在结构上的不同吗?我从2015年11月18日开始使用spark 1.6.0-SNAPSHOT。
我检查了源代码,rank()似乎需要配置单元支持。我正在与重建火花
-Phive -Phive-thriftserver
我确实确认了:当使用HiveContext
时,查询是有效的。