DeclarativeAggregate Expression-Based Functions¶
DeclarativeAggregate is an extension of the AggregateFunction abstraction for expression-based aggregate functions that use Catalyst Expression for evaluation.
DeclarativeAggregate is an Unevaluable.
Contract¶
Evaluating Expression¶
evaluateExpression: Expression
Catalyst Expression to calculate the final value of this aggregate function
See:
Used when:
EliminateAggregateFilterlogical optimization is executedAggregatingAccumulatoris createdAggregationIteratoris requested for the generateResultProjectionHashAggregateExecphysical operator is requested to doProduceWithoutKeys and generateResultFunctionAggregateProcessoris created
Expressions to Initialize Empty Aggregation Buffers¶
initialValues: Seq[Expression]
Catalyst Expressions to initialize empty aggregation buffers (for the initial values of this aggregate function)
See:
Used when:
EliminateAggregateFilterlogical optimization is executedAggregatingAccumulatoris createdAggregateCodegenSupportis requested to doProduceWithoutKeysAggregationIteratoris createdHashAggregateExecphysical operator is requested to createHashMap, getEmptyAggregationBufferHashMapGeneratoris createdAggregateProcessoris created
Merge Expressions¶
mergeExpressions: Seq[Expression]
Catalyst Expressions
See:
Update Expressions¶
updateExpressions: Seq[Expression]
Catalyst Expressions to update the mutable aggregation buffer based on an input row
See:
Used when:
AggregateProcessoris createdAggregateCodegenSupportis requested to doConsumeWithoutKeysAggregationIteratoris requested to generateProcessRowAggregatingAccumulatoris createdHashAggregateExecis requested to doConsumeWithKeys
Implementations¶
- AggregateWindowFunction
- First
- others