Geo*_*ler 7 group-by top-n apache-spark apache-spark-sql
我怎样才能获得每组的前n名(比如前10名或前3名)spark-sql?
http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/提供一般的SQL教程.但是,spark不会在where子句中实现子查询.
您可以使用Spark 1.4中添加的窗口功能功能假设我们有一个productRevenue表,如下所示.

每个类别中最畅销和第二畅销产品的答案如下
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
Run Code Online (Sandbox Code Playgroud)
Tis会给你想要的结果
| 归档时间: |
|
| 查看次数: |
6955 次 |
| 最近记录: |