我是Beam的新手,正在努力寻找许多好的指南和资源来学习最佳实践。
我注意到的一件事是定义管道有两种方式:
with beam.Pipeline() as p:
# pipeline code in here
或
p = beam.Pipeline()
# pipeline code in here
result = p.run()
result.wait_until_finish()
在每种情况下都首选每种方法吗?
答案 0 :(得分:0)
从代码片段中,我看到主要区别是您是否关心管道结果。如果要使用PipelineResult监视管道状态或通过代码取消管道,则可以使用第二种样式。
答案 1 :(得分:0)
我认为它们在功能上是等效的,因为管道上下文管理器的index.html
函数正在执行相同的代码。
https://github.com/apache/beam/blob/master/sdks/python/apache_beam/pipeline.py#L426