这个问题通常是由于没有正确使用窗口引起的。通常需要在GroupByKey之前使用window操作来指定窗口。以下是一个示例,使用了FixedWindow来解决这个问题:
import apache_beam as beam
with beam.Pipeline() as p:
(p | beam.Create([("A", 1), ("B", 2), ("A", 3), ("B", 4)])
| beam.WindowInto(beam.window.FixedWindows(2))
| beam.GroupByKey()
| beam.Map(print))
在这个例子中,我们使用了FixedWindows操作来定义一个大小为2的窗口。这意味着所有具有相同键的输入元素将被分配到同一个窗口中。然后,我们可以在窗口中执行任何操作,例如GroupByKey和Map等。