How do we assign sequential row numbers (1, 2, 3...) to products ordered by descending sales within category?
row_number().over(windowSpec) assigns unique, consecutive integers starting at 1 within each window partition.
Deduplication, pagination, and picking top-selling products per category.
from pyspark.sql.window import Window
from pyspark.sql.functions import col, row_number
window_spec = Window.partitionBy("category").orderBy(col("sales").desc())
df = df.withColumn("row_num", row_number().over(window_spec))Practice typing production-grade PySpark code for Unique Row IDs with row_number().