Search code examples
apache-flinkflink-streaming

Flink no results after keyBy, window and window apply


I try to make some Flink operations on my datastream. But I do not get any result. Does anyone has an idea why not. Thanks for your help.

KeyedStream<Tuple2<String, Long>, Tuple> stream1 = stream.keyBy(0);

stream1.print(); //Here I have results

DataStream<Tuple3<Integer, String, Date>> stream2 = stream1.window(TumblingEventTimeWindows.of(Time.seconds(15))).apply(new WindowFunction<Tuple2<String, Long>, Tuple3<Integer, String, Date>, Tuple, TimeWindow>() {
                    @Override
                    public void apply(Tuple tuple, TimeWindow window, Iterable<Tuple2<String, Long>> input, Collector<Tuple3<Integer, String, Date>> out) {
                        int counter = 0;
                        for (Tuple2<String, Long> ignored : input) {
                            counter++;
                        }
                        out.collect(new Tuple3<>(
                                counter,
                                tuple.get(0), //I also manually extracted the key from the Tuple, but that did also not work
                                new Date(window.getEnd())));
                    }

        });

stream2.print(); //here I do not have any resulat

Flink Version: 1.10 No Errors


Solution

  • Thanks to Dominik Wosiński I found the solution.

    I extracted the timestamp but forgot to set the TimeCharacteristic. I forgot the following line:

    env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);