Python Apache Beam,固定窗口究竟是如何工作的?

Python Apache Beam,固定窗口究竟是如何工作的?,python,apache-beam,Python,Apache Beam,我正在使用一个子库将数据发布到BEAM中。我一直在尝试使用60秒间隔的固定窗口,但是当我发布数据时,数据会立即打印在屏幕上。它不是应该每60秒打印一次吗 代码如下所示: objects = lines | 'Ex' >> beam.ParDo(ExtractorAndCounter()) windowed_lines = ( objects | beam.WindowInto(window.FixedWindows(60))

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

代码如下所示:

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

而ExtractorAndCounter只是一个简单的解析器而已。

在beam模型中,PCollection的窗口函数,即示例中的固定窗口,在“下次应用分组变换时”使用。例如GroupByKey或联合收割机。映射是按元素进行的,而不是分组变换

在下面的链接中,第7.1节提供了一些很好的信息


所以问题似乎是我没有正确处理从窗口出来的内容。一旦我在下面添加了一个GroupByKey,然后“打印”就开始正常工作。

您能确认提取器和计数器返回的TimestampedValue包含元素和时间戳吗?前任