Как я могу заставить GroupByKey вызывать ранние результаты, а не ждать прибытия всех данных (что в моем случае довольно долгое время). Я попытался разбить мою входную коллекцию PCollection на окна с помощью раннего триггера, но этого не произошло. т работать. Он по-прежнему ожидает поступления всех данных, прежде чем выдать результаты.
PCollection<List<String>> input = ...
PCollection<KV<Integer,List<String>>> keyedInput = input.apply(ParDo.of(new AddArbitraryKey()))
keyedInput.apply(Window<KV<Integer,List<String>>>into(
FixedWindows.of(Duration.standardSeconds(1)))
.triggering(Repeatedly.forever(AfterWatermark.pastEndOfWindow()))
.withAllowedLateness(Duration.ZERO).discardingFiredPanes())
.apply(GroupByKey.<Integer,List<String>>create())
.apply(ParDo.of(new RemoveArbitraryKey()))
.apply(ParDo.of(new FurtherProcessing())
Я делаю это, чтобы предотвратить слияние. Преобразование AddArbitraryKey выводит свои элементы с отметкой времени. Однако GroupByKey удерживает все до тех пор, пока не будут получены все данные (для всех окон). Может кто-нибудь, пожалуйста, скажите мне, как я могу заставить его срабатывать раньше. Спасибо .