den*_*dog 6 python google-cloud-dataflow apache-beam
我是 Beam 新手,正在努力寻找许多好的指南和资源来学习最佳实践。
我注意到的一件事是有两种定义管道的方法:
with beam.Pipeline() as p:
# pipeline code in here
Run Code Online (Sandbox Code Playgroud)
或者
p = beam.Pipeline()
# pipeline code in here
result = p.run()
result.wait_until_finish()
Run Code Online (Sandbox Code Playgroud)
是否存在首选每种方法的特定情况?
正如张一驰所指出的,Pipeline.__exit__
设置.result
,所以你可以这样做:
with beam.Pipeline() as p:
...
result = p.result
Run Code Online (Sandbox Code Playgroud)
contextmanager 版本更干净,因为当 contextmanager 内部出现错误时它可以正确清理。
归档时间: |
|
查看次数: |
694 次 |
最近记录: |