How do we count successful and failed logins separately per account using conditional when() expressions?
Nesting when() inside count() to compute pivot-like metrics for distinct status conditions per group.
Security threat detection, fraud monitoring, and user authentication health tracking.
from pyspark.sql.functions import col, count, when
df.groupBy("account_id").agg(
count(when(col("status") == "SUCCESS", 1)).alias("successful_logins"),
count(when(col("status") == "FAILURE", 1)).alias("failed_logins")
).show()Practice typing production-grade PySpark code for Conditional Aggregations per Group.