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?

Advancedโฑ 2 Minutesโญ 590 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