如何解决Flink countWindow如何详细工作
我正在通过简单的玩具示例来学习Flink。
我已经改编了here中的WindowWordCount
示例,并在这个简单的数据文件上运行了
cat data.txt
a a b c c
我忽略了slideSize
,而只做countWindow(windowSize)
(因此,根据this post,它被称为多个窗口大小的翻滚窗口。我对结果感到困惑。
当windowSize = 1
时,输出为
(a,1)
(a,1)
(b,1)
(c,1)
这很有意义。但是当windowSize = 2
时,输出为
(a,2)
(c,2)
b
的计数在哪里?
windowSize = 3
时,输出为空,我也不明白。
请问有人可以帮助我了解在windowSize = 2
和windowSize = 3
情况下如何产生输出吗?
我的代码在https://gist.github.com/zyxue/bc566180d2b01f1e2e77c1bbe3a7c5e5
上我用类似的命令运行它
./bin/flink run /path/to/target/myflinkapp-1.0-SNAPSHOT.jar --input data.txt --output /tmp/out --window 1
解决方法
Trigger
的{{1}}仅触发完整窗口的窗口功能-换句话说,在处理了给定键的CountWindow
事件之后,窗口将触发。
例如,对于windowSize
,仅windowSize = 2
和a
中有足够的事件。由于只有一个c
,因此该作业以b
的部分填充窗口结束。
如果要为部分计数窗口生成报告,则可以使用自定义触发器,该触发器也对超时做出反应。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。