throw new IllegalArgumentException("Output fields for chained aggregators must be distinct: " + allOutFields.toString());
}
Fields inFields = new Fields(new ArrayList<String>(allInFields));
Fields outFields = new Fields(allOutFields);
Aggregator combined = new ChainedAggregatorImpl(aggs, inputFields, new ComboList.Factory(outSizes));
if(_type!=AggType.FULL) {
_stream = _stream.partitionAggregate(inFields, combined, outFields);
}
if(_type!=AggType.PARTITION) {
_stream = _globalScheme.aggPartition(_stream);
BatchToPartition singleEmit = _globalScheme.singleEmitPartitioner();
Aggregator toAgg = combined;
if(singleEmit!=null) {
toAgg = new SingleEmitAggregator(combined, singleEmit);
}
// this assumes that inFields and outFields are the same for combineragg
// assumption also made above