Java Flink countWindow是如何详细工作的
我正在通过简单的玩具示例学习Flink 我改编了来自的Java Flink countWindow是如何详细工作的,java,apache-flink,flink-streaming,Java,Apache Flink,Flink Streaming,我正在通过简单的玩具示例学习Flink 我改编了来自的WindowWordCount示例,并在这个简单的数据文件上运行它 cat data.txt a a b c c 我忽略了幻灯片大小,只做了计数窗口(windowSize)(因此它被称为根据多个窗口大小的滚动窗口。我对结果感到困惑 当windowSize=1时,输出为 (a,1) (a,1) (b,1) (c,1) (c,1) (a,2) (c,2) 这完全有道理。但是当windowSize=2时,输出是 (a,1) (a,1) (b,
WindowWordCount
示例,并在这个简单的数据文件上运行它
cat data.txt
a a b c c
我忽略了幻灯片大小
,只做了计数窗口(windowSize)
(因此它被称为根据多个窗口大小的滚动窗口。我对结果感到困惑
当windowSize=1
时,输出为
(a,1)
(a,1)
(b,1)
(c,1)
(c,1)
(a,2)
(c,2)
这完全有道理。但是当windowSize=2
时,输出是
(a,1)
(a,1)
(b,1)
(c,1)
(c,1)
(a,2)
(c,2)
哪里是b
的计数
当windowSize=3
时,输出为空,我也不理解
有人能帮我理解在windowSize=2
和windowSize=3
的情况下是如何产生输出的吗
我的密码是开着的
我用命令运行它,就像
./bin/flink run /path/to/target/myflinkapp-1.0-SNAPSHOT.jar --input data.txt --output /tmp/out --window 1
CountWindow的Trigger
仅触发完整窗口的窗口功能——换句话说,在处理给定键的windowSize
事件后,窗口将启动
例如,对于windowSize=2
,只有a
和c
有足够的事件。由于只有一个b
,作业结束时b
的窗口部分填满
如果要为部分计数窗口生成报告,您可以使用自定义触发器,该触发器也会对超时作出反应。用于CountWindow
的触发器只会为完整窗口触发窗口功能,换句话说,在处理给定键的windowSize
事件后,窗口将启动。
例如,对于windowSize=2
,只有a
和c
有足够的事件。由于只有一个b
,作业结束时b
的窗口部分填满
如果要为部分计数窗口生成报告,可以使用自定义触发器,该触发器也会对超时作出反应