Apache Beam中的累积窗口和丢弃窗口是两种不同的窗口类型,它们的区别在于窗口的行为和数据处理方式。
pipeline
.apply(...) // 生成PCollection
.apply(Window.into(AccumulationMode.DISCARDING_FIRED_PANES))
.apply(...) // 对累积窗口中的所有元素进行处理
.apply(...) // 后续操作
pipeline
.apply(...) // 生成PCollection
.apply(Window.into(DroppingMode.FIRE_IF_NON_EMPTY))
.apply(...) // 对最新的窗格中的元素进行处理
.apply(...) // 后续操作
需要注意的是,以上代码示例中的...
表示其他Beam操作符或转换器,根据具体需求进行填充。
总结: 累积窗口保留所有进入窗口的元素,并在窗口关闭时一次性发送给下游操作;丢弃窗口在每个窗口关闭时丢弃其中的所有元素,只发送最后一个触发的窗格中的元素。根据具体需求选择不同的窗口类型。