Java Flink countWindow是如何详细工作的

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,

我正在通过简单的玩具示例学习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,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
的窗口部分填满

如果要为部分计数窗口生成报告,可以使用自定义触发器,该触发器也会对超时作出反应