Правильный способ определения конвейера луча Apache - PullRequest
0 голосов
/ 06 июля 2019

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

Одна вещь, которую я заметил, это два способа определения конвейеров:

with beam.Pipeline() as p:
# pipeline code in here

Или

p = beam.Pipeline()
# pipeline code in here
result = p.run()
result.wait_until_finish()

Существуют ли конкретные ситуации, в которых предпочтителен каждый метод?

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Я думаю, что функционально они эквивалентны, поскольку функция __exit__ для менеджера контекста конвейера выполняет тот же код.https://github.com/apache/beam/blob/master/sdks/python/apache_beam/pipeline.py#L426

0 голосов
/ 08 июля 2019

Из фрагментов кода я вижу основное отличие, если вы заботитесь о результате конвейера или нет. Если вы хотите использовать PipelineResult для мониторинга состояния конвейера или или отменить ваш конвейер с помощью своего кода, вы можете перейти ко второму стилю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...