【发布时间】:2017-05-17 23:03:26
【问题描述】:
Flink (batch/streaming) 中有没有办法同时计算一个字段的平均值和总和?使用聚合方法,我可以计算 groupBy 结果中字段的总和,但如何同时计算平均值?示例代码如下。
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
DataSet<Tuple3<String,Integer,Double>> source =
env.readCsvFile(PathConfig.LINEITEM_1)
.fieldDelimiter("|")
types(String.class, Integer.class, Double.class);
source.groupBy(0,1).aggregate(Aggregations.SUM, 2);
//average of field 2???
【问题讨论】:
-
你能用 map/reduce 代替聚合吗?
-
我可以使用reduceGroup手动计算总和和平均值,但是由于已经有一个很好的聚合求和函数,我想也许还有一种方法可以自动计算平均值。
标签: apache-flink flink-streaming