[ https://issues.apache.org/jira/browse/FLINK-1450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14296968#comment-14296968 ]
Aljoscha Krettek commented on FLINK-1450: ----------------------------------------- I see the necessity in the streaming API. Also, in the streaming API we don't have to worry about making this "combinable" the way we can make a GroupReduce operation combinable in the batch API. When we want to add this to the batch API we have to think about how we can make this combinable. I just thought about a similar problem: I want to have an "aggregation" that combines elements into a list of elements, i.e: {code} DataSet<Tuple2<String, Integer>> in = ... DataSet<Tuple2<String, List<Integer>> result = in.groupBy(0).aggregate(1, COLLECT) {code} The problem here, is that the output of the combiner would be pre-aggregated lists, this would not match the expected reducer input of single items. I thought about providing a local combiner as an explicit operation and then the program could be expressed as a local combine and than a reduce with a different input type. Here, the local combiner would be a fold while the reducer is a classic shuffled reduce. I hope I'm making sense to you somehow. :D > Add Fold operator to the Streaming api > -------------------------------------- > > Key: FLINK-1450 > URL: https://issues.apache.org/jira/browse/FLINK-1450 > Project: Flink > Issue Type: New Feature > Components: Streaming > Affects Versions: 0.9 > Reporter: Gyula Fora > Priority: Minor > Labels: starter > > The streaming API currently doesn't support a fold operator. > This operator would work as the foldLeft method in Scala. This would allow > effective implementations in a lot of cases where a the simple reduce is > inappropriate due to different return types. -- This message was sent by Atlassian JIRA (v6.3.4#6332)