How can we detect factory machine sensor spikes where vibration readings exceed 3 standard deviations from the rolling mean?
Calculating rolling average and standard deviation with Window functions flags z-score statistical anomalies.
Predictive maintenance pipelines alerting engineers before industrial equipment experiences catastrophic failure.
w = Window.partitionBy("sensor_id").orderBy("timestamp").rowsBetween(-29, Window.currentRow)
df_anomalies = df_sensor.withColumn("rolling_avg", avg("vibration").over(w)).withColumn("rolling_std", stddev("vibration").over(w)).withColumn("z_score", abs((col("vibration") - col("rolling_avg")) / col("rolling_std"))).filter(col("z_score") > 3.0)Practice typing production-grade PySpark code for Scenario: IoT Sensor Telemetry Anomaly Detection.