Python Apache Beam,固定窗口究竟是如何工作的?
我正在使用一个子库将数据发布到BEAM中。我一直在尝试使用60秒间隔的固定窗口,但是当我发布数据时,数据会立即打印在屏幕上。它不是应该每60秒打印一次吗 代码如下所示: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))
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包含元素和时间戳吗?前任