例如,我有一大串字,想数每一个字。问题是这些词是不正确的。这意味着有些词的频率会很高,但大多数其他单词的频率很低。在风暴中,我们可以用以下方法来解决这个问题。首先在流上做洗牌分组,在每个节点中在窗口时间内计数本地单词,最后更新计数到累积结果。从我的另一个question中,我知道Flink只支持键控流上的窗口,否则窗口操作将不是并行的。
我的问题是,是否有一个好的方法来解决这种扭曲的数据问题在Flink?

发布于 2016-01-11 09:41:11
DataStream API目前本机不支持预聚合.原则上,可以为事件时窗口添加类似组合器的特性.海事组织,这将是一个非常有价值的补充,但尚未完成。
但是,您可以自己实现这个特性。DataStream API提供了与Storm类似的低级操作符接口.该接口称为OneInputStreamOperator。此运算符类型为您提供完全控制。实际上,内置操作符(例如窗口操作符)也是基于这个类的.
OneInputStreamOperator可以应用如下:
DataStream<Tuple2<String,Integer> inStream = ...
DataStream<String> outStream = inStream
.transform("my op", BasicTypeInfo.STRING_TYPE_INFO, new MyOISO());https://stackoverflow.com/questions/34681887
复制相似问题