rank()
Описание
Функция rank() вычисляет ранг значений в окне. При одинаковых значениях присваивается одинаковый ранг, а следующий ранг пропускается.
Параметры
Нет параметров
Возвращаемое значение
Long - ранг текущей строки
Пример использования
from pyspark.sql import SparkSession
from pyspark.sql.window import Window
from pyspark.sql.functions import rank
# Создаем SparkSession
spark = SparkSession.builder.appName("rank_example").getOrCreate()
# Создаем DataFrame
data = [
    ("A", 100),
    ("B", 200),
    ("C", 200),
    ("D", 300),
    ("E", 300)
]
df = spark.createDataFrame(data, ["name", "value"])
# Определяем окно
window = Window.orderBy("value")
# Вычисляем ранг
result = df.select(
    "name",
    "value",
    rank().over(window).alias("rank")
).show()
# Результат:
# +----+-----+----+
# |name|value|rank|
# +----+-----+----+
# |   A|  100|   1|
# |   B|  200|   2|
# |   C|  200|   2|
# |   D|  300|   4|
# |   E|  300|   4|
# +----+-----+----+
 Примечания
- Функция должна использоваться с оконной спецификацией
 - При одинаковых значениях присваивается одинаковый ранг
 - Следующий ранг пропускается (в отличие от 
dense_rank()) - Для вычисления плотного ранга используйте 
dense_rank() - Для получения номера строки используйте 
row_number() - Для вычисления относительного ранга используйте 
percent_rank()