Spark SQL中開窗函式詳解

2021-10-11 16:36:34 字數 1474 閱讀 6586

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...