Hi Jeff, The window is not a global window. It is related to a specified key. You would have 6 windows after flatMap() and keyBy(). key: hello with 3 windows key: world with 1 window key: flink with 1 window key: hadoop with 1 window
Best, Hequn On Wed, Nov 14, 2018 at 10:31 AM Jeff Zhang <zjf...@gmail.com> wrote: > Hi all, > > I am a little confused with the following windows operation. Here's the > code, > > val senv = StreamExecutionEnvironment.getExecutionEnvironment > senv.setParallelism(1) > val data = senv.fromElements("hello world", "hello flink", "hello hadoop") > > data.flatMap(line => line.split("\\s")) > .map(w => (w, 1)) > .keyBy(0) > .countWindow(2, 1) > .sum(1) > .print("******************") > > senv.execute() > > > And this is the output: > > ******************> (hello,1) > ******************> (world,1) > ******************> (hello,2) > ******************> (flink,1) > ******************> (hello,2) > ******************> (hadoop,1) > > > As my understanding, here we have 3 windows. > > window 1 > > (hello, world) > > window 2 > > (hello, world) > > (hello, flink) > > window 3 > > (hello flink) > > (hello hadoop) > > So for the first window, we have output (hello, 1) (world, 1) > > for the second window we should output (hello, 2), (world,1 ), (flink, 1) > > for the third window we should have output (hello, 2), (flink, 1), (hadoop, 1) > > > But as you can see, in the above I get different result, do I misunderstand > the window ? Could anyone help me to understand that ? Thanks > >