DataFlow 中没有平均聚合?

Average aggregation not available in DataFlow?

我只需要一个简单的数学。在我处理我的管道时意味着我的 PCollection<Integer> 作为聚合器。

我找到了 com.google.cloud.dataflow.sdk.transforms.Mean.MeanFn 但它是包私有的?! 是否有一个原因?将其标记为 public 似乎与我假设的一样有效:

Aggregator<Long, Double> averageAge = createAggregator("Average age", new Mean.MeanFn<Integer>());

我们目前在我们的监控工具中对均值聚合器的支持不够好,这就是为什么 MeanFn 是包私有的(即即使它是 public,你不会从中得到太多用处——现在我们只使用一些平均聚合器用于内部目的。

但是,您可以使用 Mean transform 获取包含均值作为单个元素的 PCollection:

PCollection<Double> meanAge = ages.apply(Mean.<Long>globally());