gpt4 book ai didi

java - Apache 光束窗口 : consider late data but emit only one pane

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

当水印到达窗口末尾 x 分钟后,我想发出一个 Pane 。这让我确保我处理了一些迟到的数据,但仍然只发出一个 Pane 。我目前在 Java 工作。

目前我找不到解决这个问题的合适方法。当水印到达窗口末尾时,我可以发出一个 Pane ,但随后所有迟到的数据都会被丢弃。我可以在窗口末尾发出 Pane ,然后在收到延迟数据时再次发出 Pane ,但在这种情况下,我不会发出单个 Pane 。

我目前有类似这样的代码:

.triggering(
// This is going to emit the pane, but I don't want emit the pane yet!
AfterWatermark.pastEndOfWindow()

// This is going to emit panes each time I receive late data, however
// I would like to only emit one pane at the end of the allowedLateness
).withAllowedLateness(allowedLateness).accumulatingFiredPanes())

如果仍然存在混淆,我只想在水印通过 allowedLateness 时发出一个 Pane 。

最佳答案

谢谢 Guillem,最后我用你的答案找到了这个 very useful link有很多 Apache Beam 示例。由此我想出了以下解决方案:

 // We first specify to never emit any panes
.triggering(Never.ever())

// We then specify to fire always when closing the window. This will emit a
// single final pane at the end of allowedLateness
.withAllowedLateness(allowedLateness, Window.ClosingBehavior.FIRE_ALWAYS)
.discardingFiredPanes())

关于java - Apache 光束窗口 : consider late data but emit only one pane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55954482/

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