我只需要一个简单的数学运算。当我处理我的管道时,意味着我的PCollection<Integer>
作为聚合器。
我发现com.google.cloud.dataflow.sdk.transforms.Mean.MeanFn
但它是私有的??
是否有一个原因?将其标记为public
似乎可以正常工作:
Aggregator<Long, Double> averageAge = createAggregator("Average age", new Mean.MeanFn<Integer>());
答案 0 :(得分:1)
我们目前的监控工具不能很好地支持卑鄙的聚合器,这就是为什么MeanFn是包私有的(即使它是公开的,你也不会得到很多用处)它 - 现在我们只使用一些平均聚合器用于内部目的。)
但是,您可以使用Mean transform将包含均值的PCollection作为单个元素:
PCollection<Double> meanAge = ages.apply(Mean.<Long>globally());