Skip to main content
PYSPARK • LESSON 108

Unique Row IDs with row_number()

How do we assign sequential row numbers (1, 2, 3...) to products ordered by descending sales within category?

Advanced2 Minutes590 XP
🤔 THE QUESTION

How do we assign sequential row numbers (1, 2, 3...) to products ordered by descending sales within category?

💡 WHAT IS IT?

row_number().over(windowSpec) assigns unique, consecutive integers starting at 1 within each window partition.

🎯 WHAT IS IT USED FOR?

Deduplication, pagination, and picking top-selling products per category.

💻 EXAMPLE
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))

🎯 Mission Objectives

Practice typing production-grade PySpark code for Unique Row IDs with row_number().

  • Import row_number function
  • Apply row_number over categorized WindowSpec
  • Generate unique rank position per category