dense_rank(密集排名)

Window 函数:返回窗口分区中行的排名,没有任何间隔。

排名和dense_rank之间的区别在于,当存在关系时,dense_rank在排名序列中没有差距。 也就是说,如果你使用dense_rank排名比赛,并有三个人打第二名,你会说,这三个人都排在第二位,下一个人排在第三位。 排名会给我顺序数字,使第三位(关系后)的人将登记为第五名。

这相当于 SQL 中的DENSE_RANK函数。

Syntax

from pyspark.sql import functions as sf

sf.dense_rank()

参数

此函数不采用任何参数。

退货

pyspark.sql.Column:用于计算排名的列。

例子

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.dense_rank().over(w)).show()
+-----+-----+
|value|drank|
+-----+-----+
|    1|    1|
|    1|    1|
|    2|    2|
|    3|    3|
|    3|    3|
|    4|    4|
+-----+-----+