我有一个DataStream<Tuple2<String, Integer>>
这能正确打印
当我按键、窗口、求和然后打印时什么都没出来?
所以我取我的工作流stream
,然后运行:
DataStream<Tuple2<String, Integer>> groupedStream = stream
.keyBy(0)
.window(TumblingEventTimeWindows.of(Time.seconds(5)))
.sum(1);
groupedStream.print();
stdout
中没有出现任何内容?如何调试?
执行Window运算符后,与输出不足有关的大多数问题(如95%(都是由于您没有正确的水印分配或时间戳提取。
因此:
-
如果您从未在流中调用过
assignTimestampsAndWatermarks
,那么您应该这样做。 -
如果您使用了
AssignedWithPeriodicWatermark
,则应确保setAutoWatermarkInterval()
未设置为0。 -
验证水印是否可以正确生成(即您的测试数据跨度超过5秒(
-
此外,作为安全检查,验证这是否适用于
parallelism
等于1。