Apache Луч, который использует время в качестве входа - PullRequest
0 голосов
/ 02 марта 2020

Я хочу создать вход Beam, который выполняется каждую секунду и просто выводит время в качестве входа. Я знаю, что могу сделать pcollection из чисел, подобных этому

p.apply(Create.of(1, 2, 3, 4, 5))
        .setCoder(VarIntCoder.of())

, и я мог бы просто создать действительно большой массив чисел и отобразить их окнами каждую секунду, но есть ли лучший способ сделать это ? Спасибо.

1 Ответ

2 голосов
/ 02 марта 2020

Понял, что это можно сделать с помощью GenerateSequence для ограниченных или неограниченных множеств. Для получения 1 точки данных в секунду я могу использовать функцию withRate, и если я не добавлю «to», моя коллекция будет неограниченной.

p.apply(GenerateSequence.from(0).withRate(1, new Duration(1000)))
...