How can we aggregate metrics conditionally within a groupBy operation without writing multiple subqueries?
Wrapping when() inside sum() or count() allows selective aggregation of rows meeting specific business criteria.
Calculating KPI matrices such as completed vs failed orders in a single aggregation step.
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"))Practice typing production-grade PySpark code for Conditional Aggregation with when().