google 数据流:类型 Sum.SumIntegerFn 不可见

google dataflow: the type Sum.SumIntegerFn is not visible

在我的 Eclipse 中,我被标记为错误“类型 Sum.SumIntegerFn 不可见。

import org.apache.beam.sdk.transforms.Sum;
....
something = createAggregator("something", new Sum.SumIntegerFn());

我从导入中看到您正在使用 Apache Beam。您应该使用 Sum.ofIntegers() 而不是 new Sum.SumIntegerFn().

另请注意,在 Github 头部,聚合器已被删除。相反,计数器指标将提供类似的行为。有关详细信息,请参阅 Metrics

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;
        }
    }