函数式编程:为什么reduce,fold,aggregations的源是keyedstream而不是datastream?

knsnq2tg  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(512)

根据apacheflink的文档:datastream转换。
所有的reduce,fold,aggregations都代表了 KeyedStreamDataStream 而不是从 DataStreamDataStream .
我想知道为什么?
据我所知,你还是可以的 reduce 或者 fold 或者 min / max (聚合)在(非键控)数据流上,如 map 或者 filter .

cuxqih21

cuxqih211#

通常,我们希望基于 keys . 例如,假设流的输入是tuple2(groupid:string,userid:string)。keyedstream使用 groupId 作为一个键,api提供了方便的方法来计算每个组的用户数。
当然,如果我们只想获得所有输入数据的全局min userid,我们可以简单地使用datastream上的map来实现这一点。

相关问题