Writing Custom Aggregation Function
interface AggregationFunction {
AggregationResultHolder createAggregationResultHolder();
GroupByResultHolder createGroupByResultHolder(int initialCapacity, int maxCapacity);
void aggregate(int length, AggregationResultHolder aggregationResultHolder, Map<String, BlockValSet> blockValSetMap);
void aggregateGroupBySV(int length, int[] groupKeyArray, GroupByResultHolder groupByResultHolder,
Map<String, BlockValSet> blockValSets);
void aggregateGroupByMV(int length, int[][] groupKeysArray, GroupByResultHolder groupByResultHolder,
Map<String, BlockValSet> blockValSets);
IntermediateResult extractAggregationResult(AggregationResultHolder aggregationResultHolder);
IntermediateResult extractGroupByResult(GroupByResultHolder groupByResultHolder, int groupKey);
IntermediateResult merge(IntermediateResult intermediateResult1, IntermediateResult intermediateResult2);
FinalResult extractFinalResult(IntermediateResult intermediateResult);
}Was this helpful?

