在我的Eclipse中,我被标记为错误“类型Sum.SumIntegerFn不可见。
import org.apache.beam.sdk.transforms.Sum;
....
something = createAggregator("something", new Sum.SumIntegerFn());
答案 0 :(得分:0)
我从导入中看到您正在使用Apache Beam。您应该使用Sum.ofIntegers()
代替new Sum.SumIntegerFn()
。
另请注意,在Github头部,聚合器已被删除。相反,计数器指标将提供类似的行为。有关详细信息,请参阅Metrics
。
答案 1 :(得分:0)
Sum.SumIntegerFn()
不再公开曝光,会被Sum.ofIntegers()
取代。如果您需要一种解决方法来使用您自己的Iterable函数而不是内置函数,请尝试下面的代码块。
something = createAggregator("something", new SumIntegers());
public static class SumIntegers implements SerializableFunction<Iterable<Integer>, Integer> {
@Override
public Integer apply(Iterable<Integer> input) {
Integer sum = 0;
for (Integer item : input) {
sum += item;
}
return sum;
}
}