0

在处理我的输入时,我想在输出 JSON 中添加一个新字段,该值应该自动递增。

Ex - 输入列表

{"name": "Amar", "age": 10}
{"name": "Akbar", "age": 20}
{"name": "Anthony", "age": 30}

添加序列号后的预期输出

{"No": 1, "name": "Amar", "age": 10}
{"No": 2, "name": "Akbar", "age": 20}
{"No": 3, "name": "Anthony", "age": 30}
4

1 回答 1

1

Beam 并行处理元素,不保证元素的顺序。

但是,如果您仍想分配计数器,那么您可以使用 apache beam 中的状态来维护计数器。参考https://beam.apache.org/blog/2017/02/13/stateful-processing.html

一个状态的作用域是一个键+窗口。因此,在为不同的键集分配独立的计数器时,它应该可以正常工作。

但是,如果您的键和窗口数量较少,那么这可能会影响管道的并行性。

此外,在分布式数据处理中,这种计数器的使用并不多,如果您能多描述一下您的用例,那就太好了。

于 2020-04-20T22:29:15.930 回答