Skip to main content
PYSPARK โ€ข LESSON 204

Conditional Aggregation with when()

How can we aggregate metrics conditionally within a groupBy operation without writing multiple subqueries?

Advancedโฑ 3 Minutesโญ 830 XP
๐Ÿค” THE QUESTION

How can we aggregate metrics conditionally within a groupBy operation without writing multiple subqueries?

๐Ÿ’ก WHAT IS IT?

Wrapping when() inside sum() or count() allows selective aggregation of rows meeting specific business criteria.

๐ŸŽฏ WHAT IS IT USED FOR?

Calculating KPI matrices such as completed vs failed orders in a single aggregation step.

๐Ÿ’ป EXAMPLE
df_metrics = df.groupBy("region").agg(sum(when(col("status") == "COMPLETED", col("amount")).otherwise(0)).alias("completed_revenue"), count(when(col("status") == "FAILED", 1)).alias("failed_count"))

๐ŸŽฏ Mission Objectives

Practice typing production-grade PySpark code for Conditional Aggregation with when().

  • โœ“ sum(when()) pattern
  • โœ“ Selective metric calculation
  • โœ“ Single-pass pivot aggregation