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());
我只需要一个简单的数学。在我处理我的管道时意味着我的 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());