Aller au contenu principal

classement

Fonction de fenêtre : renvoie le classement des lignes au sein d'une partition de fenêtre.

La différence entre rank et dense_rank est que dense_rank ne laisse aucun écart dans la séquence de classement en cas d'égalité. C'est-à-dire que si vous classiez une compétition en utilisant dense_rank et que trois personnes arrivaient ex æquo à la deuxième place, vous diriez que toutes les trois étaient à la deuxième place et que la personne suivante arrivait à la troisième place. Le rang me donnerait des numéros séquentiels, ce qui ferait que la personne arrivée à la 3e place (après les égalités) serait enregistrée comme arrivant à la 5e.

Ceci est équivalent à la fonction RANK en SQL.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.rank()

parameter

Cette fonction ne prend aucun paramètre.

Renvoie

pyspark.sql.Column: la colonne pour le calcul des classements.

Exemples

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