我在运行自己修改的wordcount示例时遇到了Flink 0.9.0版本的一些问题。我发现计数窗口表现为与官方文件不同的本地窗口。我还发现了一个固定的错误在https://issues.apache.org/jira/browse/FLINK-1657。哪个是正确答案?任何帮助将不胜感激!谢谢大家
目前的标准答案是时间是全局的(因为时间总是全局的),而所有其他Windows都是本地的或没有很好定义的。
我们意识到一些问题,目前正在为下一个版本重新编写API。你可以在这里阅读设计文档:https://cwiki.apache.org/confluence/display/FLINK/Streams+and+Operations+on+Streams和https://cwiki.apache.org/confluence/display/FLINK/Time+and+Order+in+Streams。
您需要在应用窗口之前进行分组:
dataStream.flatMap(new WordCount.Tokenizer()).groupBy(0).window(Count.of(8)).every(Count.of(4)).sum(1).flatten().print()
计数窗口是本地组装的(据我所知)。目前,Flink不提供任何排序保证,因此,在本地构建计数窗口可以获得最佳性能。