ImperativeAggregate Expressions¶
ImperativeAggregate
is an extension of the AggregateFunction abstraction for aggregate functions that are expressed using imperative initialize, merge and update methods (that operate on Row
-based aggregation buffers).
Contract (Subset)¶
initialize¶
initialize(
mutableAggBuffer: InternalRow): Unit
Used when:
EliminateAggregateFilter
logical optimization is executedAggregatingAccumulator
is requested to createBufferAggregationIterator
is requested to initializeBufferObjectAggregationIterator
is requested to initAggregationBufferTungstenAggregationIterator
is requested to createNewAggregationBufferAggregateProcessor
is requested to initialize
merge¶
merge(
mutableAggBuffer: InternalRow,
inputAggBuffer: InternalRow): Unit
Used when:
AggregatingAccumulator
is requested to mergeAggregationIterator
is requested to generateProcessRow
update¶
update(
mutableAggBuffer: InternalRow,
inputRow: InternalRow): Unit
Used when:
AggregatingAccumulator
is requested to add a valueAggregationIterator
is requested to generateProcessRowAggregateProcessor
is requested to update
Implementations¶
HyperLogLogPlusPlus
PivotFirst
- ScalaUDAF
- TypedImperativeAggregate
CodegenFallback¶
ImperativeAggregate
is a CodegenFallback.