public <I extends java.io.Serializable> GearsBuilder<I> localAccumulateBy(
	gears.operations.ExtractorOperation<T> extractor, 
	gears.operations.AccumulateByOperation<T,I> accumulator)

The localAccumulateBy function is similar to accumulateBy, except it performs the operation locally on each shard without moving data between shards.

On each shard, it iterates through the records in the pipe, groups them based on the provided extractor, and then reduces each group to a single record per group with the accumulator function.

The initial value of the accumulator is null.

Parameters

Type parameters:

NameDescription
IThe template type of the returned builder

Function parameters:

NameTypeDescription
accumulatorAccumulateByOperation<T,​I>A function with logic to update the accumulator value with each record
extractorExtractorOperationExtracts a specific value from each record

Returns

Returns a GearsBuilder object with a new template type.

Example

GearsBuilder.CreateGearsBuilder(reader).
   	localAccumulateBy(r->{
   		return r.getStringVal();
   	},(k, a, r)->{
   		Integer ret = null;
   		if(a == null) {
   			ret = 0;
   		}else {
   			ret = (Integer)a;
   		}
   		return ret + 1;
});