定义apap梁管道的正确方法

时间:2019-07-06 12:49:56

标签: python google-cloud-dataflow apache-beam

我是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 :(得分:0)

从代码片段中,我看到主要区别是您是否关心管道结果。如果要使用PipelineResult监视管道状态或通过代码取消管道,则可以使用第二种样式。

答案 1 :(得分:0)

我认为它们在功能上是等效的,因为管道上下文管理器的index.html函数正在执行相同的代码。 https://github.com/apache/beam/blob/master/sdks/python/apache_beam/pipeline.py#L426