LocalAccumulateBy

对记录进行分组,并通过每个分片上的局部操作,将每个组简化为每个组一条记录。

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

localAccumulateBy 函数类似于 accumulateBy,但它在每个分片上本地执行操作,而不会在分片之间移动数据。

在每个分片上,它将遍历管道中的记录,根据提供的提取器对它们进行分组,然后使用累加器函数将每个组简化为每个组一条记录。

累加器的初始值为 null。

参数

类型参数

名称 描述
I 返回的构建器的模板类型

函数参数

名称 类型 描述
accumulator AccumulateByOperation<T,​I> 具有逻辑的函数,用于使用每条记录更新累加器值
extractor ExtractorOperation 从每条记录中提取特定值

返回值

返回具有新模板类型的 GearsBuilder 对象。

示例

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;
});
RATE THIS PAGE
Back to top ↑