|
1
0
一般来说,有两种方法可以实现这一点:
考虑到WindowAPI的设计方式,在使用预聚合(即reduce或aggregate)时,我看不到任何方法可以实现这一点,但我认为可以使用ProcessWindowFunction和自定义逐出器,或者利用ProcessWindowFunction.Context中的globalState在一个窗口和下一个窗口之间保持状态。 您可能遇到的一个问题是,例如,如果在13:00~14:00这一小时内没有发生任何事件,则不会创建或计算任何窗口。如果这是一个问题,那么需要进一步定制。 在大多数涉及非标准窗口的情况下,使用ProcessFunction更直接、更高效。这样,您就可以直接控制要保持的状态,而窗口触发逻辑通常不太难重新创建。 |
|
|
Ellen Spertus · 使用Scala访问HBase的推荐方法 8 年前 |
|
|
Daniel · 目录中的Apache Flink流文件 8 年前 |
|
|
Jicaar · 一个卡夫卡制作人可以被多个接收器安全使用吗? 8 年前 |