В Beam важно помнить, что каждый элемент имеет окно, связанное с ним .
В фрагменте кода элементы my_pcollection
связаны с глобальным окном . Когда вы добавляете beam.WindowInto
, вы добавляете окно к каждому элементу - и когда они переходят в GroupByKey
, элементы будут группироваться по ключу и окну .
Когда вы идете вниз по течению к ParDo
и Combine
, ваши элементы продолжают иметь то же самое окно , и тот же триггер .
Это происходит потому, что Beam пытается позволить вашим данным продолжать проходить через ваш конвейер, поэтому он сохраняет то же окно и запускает семантику.
С учетом этих соображений ваш results_pcoll
будет иметь то же окно и ту же семантику триггера, которую вы добавили в начале конвейера.
Благодаря глобальному объединению вы получите единую агрегацию по всем ключам, но у вас также будет по одной агрегации для каждого окна .