首页 > 解决方案 > Python Apache Beam,固定 Windows 究竟是如何工作的?

问题描述

我正在使用 SubPub 将数据发布到 BEAM。我一直在尝试使用 60 秒间隔的固定窗口,但是当我发布数据时,数据会立即打印在我的屏幕上。它不应该只每 60 秒打印一次吗?

代码是这样的:

objects = lines | 'Ex' >> beam.ParDo(ExtractorAndCounter())
windowed_lines = (
            objects
            | beam.WindowInto(window.FixedWindows(60))
            | 'print' >> beam.Map(print))

而 ExtractorAndCounter 是一个简单的解析器,仅此而已。

标签: pythonapache-beam

解决方案


在梁模型中,PCollection 的窗口函数(示例中的固定窗口)在“下次应用分组变换时”使用。例如 GroupByKey 或 Combine。Map 是元素方面的,而不是分组变换。

以下链接的第 7.1 节中有一些很好的信息。

7.1 开窗


推荐阅读