row_number()開窗函式:其實就是給每個分組的資料,按照其排序的順序,打上乙個分組內的行號,相當於grouptopn,在實際應用中非常廣泛。
+
----
----+--
-----+
------+
|deptname| name|salary|+--
------+
-------
+------
+| dept-
1|michael|
3000
|| dept-
2| andy|
5000
|| dept-
1| alex|
4500
|| dept-
2| justin|
6700
|| dept-
2| cherry|
3400
|| dept-
1| jack|
5500
|| dept-
2| jone|
12000
|| dept-
1| lucy|
8000
|| dept-
2| lili|
7600
|| dept-
2| pony|
4200|+
----
----+--
-----+
----
--+
需求分析:對上面資料表按照deptname分組,並按照salary降序排序,取出每個deptname組前兩名。
資料來源:
初始化sparksession
package com.kfk.spark.common
import org.apache.spark.sql.sparksession
/** * @author : 蔡政潔
* @email :[email protected]
* @date : 2020/12/2
* @time : 10:02 下午
*/object commsparksessionscala
}
實現開窗函式
package com.kfk.spark.sql
import com.kfk.spark.common.
/** * @author : 蔡政潔
* @email :[email protected]
* @date : 2020/12/8
* @time : 12:22 下午
*/object windowfunctionscala
}
Spark SQL中自定義函式詳解
資料來源 初始化sparksession package com.kfk.spark.common import org.apache.spark.sql.sparksession author 蔡政潔 email caizhengjie888 icloud.com date 2020 12 2 t...
MySQL中實現開窗函式
一 概述 row number是資料庫中常用的乙個開窗函式,可以實現資料分割槽編號的功能,然而mysql並不支援開窗函式。本文介紹了在mysql中實現開窗函式的方法。二 經典開窗函式 首先準備基礎資料,如下入所示。在hive或oracle中使用經典開窗函式實現資料分組編號的方法如下。select n...
rank 開窗函式 排序類開窗函式
1,row number over 排序,連續 select score,row number over from sc 按原始 的成績順序進行排序 原始 成績順序 先將分數從大到小排序,分數相同,排名不同 select score,row number over order by score fr...