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

时间:2017-05-03 19:32:24

标签: google-cloud-dataflow apache-beam

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

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

2 个答案:

答案 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;
        }
    }
相关问题