Pular para o conteúdo principal

classificação densa

Função de janela: retorna a classificação das linhas dentro de uma partição da janela, sem lacunas.

A diferença entre rank e dense_rank é que dense_rank não deixa lacunas na sequência de classificação quando há empates. Ou seja, se você estivesse classificando uma competição usando o dense_rank e três pessoas empatassem em segundo lugar, você diria que as três ficaram em segundo lugar e que a próxima pessoa ficou em terceiro. A classificação me daria números sequenciais, fazendo com que a pessoa que ficou em terceiro lugar (após os empates) fosse registrada como tendo ficado em quinto.

Isso é equivalente à função DENSE_RANK em SQL.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.dense_rank()

Parâmetros

Esta função não recebe nenhum parâmetro.

Devoluções

pyspark.sql.Column: a coluna para calcular as classificações.

Exemplos

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