我试图对我的数据流进行一些Flink操作。但我没有得到任何结果。有人知道为什么不呢。谢谢你的帮助。
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版本:1.10无错误
多亏了Dominik Wosiński,我找到了解决方案。
我提取了时间戳,但忘记设置TimeCharacteristic。我忘了下面这行:
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);