ランク
ウィンドウ関数: ウィンドウ パーティション内の行のランクを返します。
rank と dense_rank の違いは、dense_rank では同点の場合にランキング順に隙間が残らないことです。つまり、dense_rank を使用して競争の順位付けをしていて、3 人が 2 位で同点だった場合、3 人全員が 2 位で、次の人が 3 位になったと表示されます。順位は連番で付与され、同点後 3 位になった人は 5 位として登録されます。
これは SQL の RANK 関数と同等です。
構文
Python
from pyspark.sql import functions as sf
sf.rank()
パラメーター
この機能には問題はありません。
戻り値
pyspark.sql.Column: 順位を計算する列。
例
Python
from pyspark.sql import functions as sf
from pyspark.sql import Window
df = spark.createDataFrame([1, 1, 2, 3, 3, 4], "int")
w = Window.orderBy("value")
df.withColumn("drank", sf.rank().over(w)).show()
Output
+-----+-----+
|value|drank|
+-----+-----+
| 1| 1|
| 1| 1|
| 2| 3|
| 3| 4|
| 3| 4|
| 4| 6|
+-----+-----+