- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在数据流上执行函数,
DataStream<Tuple4<String,String,Double,Double>> price_warning=datastream_in
.flatMap(new Splitter())// transformation flatmap
.keyBy(2)
.window(SlidingProcessingTimeWindows.of(Time.seconds(180),Time.seconds(10)))
.trigger(new ElementTimeTrigger())
.apply(new WindowFunction());
这是我代码的一部分,只是为了我正在做的事情的想法。在这里,在数据流上,我正在做平面映射来解析 datastream_in
进入Tuple
,则流为keyby
在元组的第二个字段上。之后,我应用滑动窗口,然后是 trigger
。这里我使用onElement()
触发方法。最后,我使用apply
作为自定义函数。
当我运行代码时,对于我解析的每条消息,都会调用 apply 函数 18 次(180/10,引用滑动窗口)。其背后的原因可能是什么?触发器如何与滑动窗口配合使用?
** 如果需要,我还可以提供完整的代码。
最佳答案
Trigger
告诉应该在哪里发出窗口。在你的情况下,如果我理解正确的话,你会为进入流的每个元素触发窗口发射,因此数字为 18。 SlidingProcessingTimeWindow
已经有一个默认触发器,当处理时间超过结束时,它将发射窗口窗口。
有关触发器
概念的更多信息,您可以阅读this
关于java - Flink : Trigger. onElement 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41477237/
我正在数据流上执行函数, DataStream> price_warning=datastream_in .flatMap(new Splitter())// transformation flatm
我是一名优秀的程序员,十分优秀!