Я пытаюсь добавить заголовок, используя функцию Flatten в Apache Beam. Однако, как представляется, нет способа установить порядок в соответствии с документацией: https://beam.apache.org/documentation/sdks/pydoc/2.4.0/apache_beam.transforms.core.html?highlight=flatten#apache_beam.transforms.core.Flatten.
Иногда заголовок находится в конце данных, а другие в верхней части. Есть ли способ установить порядок? Интересно, если я что-то упустил?
with beam.Pipeline(options=options) as p:
header = [
('name', 'number'),
]
phones_list = [
('amy', '111-222-3333'),
('james', '222-333-4444'),
('amy', '333-444-5555'),
('carl', '444-555-6666'),
]
header = p | 'Header' >> beam.Create(header)
phones = p | 'CreatePhones' >> beam.Create(phones_list)
merged = ((phones,header)
| 'MergedPColl' >> beam.Flatten())
output = merged
output | 'Write' >> beam.io.WriteToText('./_output')
Выход 1:
('amy', '111-222-3333')
('james', '222-333-4444')
('amy', '333-444-5555')
('carl', '444-555-6666')
('name', 'number')
Выход 2:
('name', 'number')
('amy', '111-222-3333')
('james', '222-333-4444')
('amy', '333-444-5555')
('carl', '444-555-6666')