gpt4 book ai didi

java - Flink : Trigger. onElement 工作

转载 作者:行者123 更新时间:2023-12-01 09:03:34 28 4
gpt4 key购买 nike

我正在数据流上执行函数,

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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com