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;
});
为此页面评分
返回顶部 ↑