Spark操作開窗函式

chenyanlong_v發表於2019-09-02

準備工作:

 

聚合開窗函式

OVER 關鍵字表示把聚合函式當成聚合開窗函式而不是聚合函式。
SQL標準允許將所有聚合函式用做聚合開窗函式。

OVER(PARTITION BY class)表示對結果集按照 class 進行分割槽,並且計算當前行
所屬的組的聚合計算結果。

 

排序開窗函式

row_number() over(order by score) as rownum 表示按score 升序的方式來排序,並得出排序結果的序號

 

 

 RANK跳躍排序

 

DENSE_RANK連續排序:

dense_rank() over(order by score) as dense_rank 表示按score 升序的方式來排序,並得出排序結果的排名號。

 

NTILE分組排名

ntile(5) over(order by score)as ntile表示按 score 升序的方式來排序,然後 5 等分成5 個組,並顯示所在組的序號。

相關文章