EventTimeStatsAccum Accumulator¶
EventTimeStatsAccum is an AccumulatorV2 (Spark Core) that accumulates Long values and produces an EventTimeStats.
AccumulatorV2[Long, EventTimeStats]
Creating Instance¶
EventTimeStatsAccum takes the following to be created:
- EventTimeStats (default: EventTimeStats.zero)
EventTimeStatsAccum is created when:
- EventTimeWatermarkExec unary physical operator is created (and initializes eventTimeStats)
EventTimeWatermarkExec Physical Operator
When EventTimeWatermarkExec physical operator is requested to execute, every task simply adds the values of the event-time watermark column expression to the EventTimeStatsAccum accumulator.
As per design of Spark accumulators in Apache Spark, accumulator updates are automatically sent out (propagated) from tasks to the driver every heartbeat and then they are accumulated together.
EventTimeStats¶
EventTimeStatsAccum is given an EventTimeStats when created.
Every time AccumulatorV2 methods are called, EventTimeStatsAccum simply delegates them to the EventTimeStats (that is responsible for event-time statistics, i.e. max, min, avg, count).
Adding Value¶
add(
v: Long): Unit
add is part of the AccumulatorV2 (Spark Core) abstraction.
add simply requests the EventTimeStats to add the given v value.
add is used when EventTimeWatermarkExec physical operator is executed.