gpt4 book ai didi

google-cloud-dataflow - 如何在 Beam 2.0 中的复合 PTransform 中获取 PipelineOptions?

转载 作者:行者123 更新时间:2023-12-01 01:50:16 26 4
gpt4 key购买 nike

升级到 Beam 2.0 后 Pipeline类(class)没有 getOptions()上课了。
我有一个复合 PTransform依赖于获取其 expand 中的选项方法:

public class MyCompositeTransform extends PTransform<PBegin, PDone> {
@Override
public PDone expand(PBegin input) {
Pipeline pipeline = input.getPipeline();
MyPipelineOptions options = pipeline.getOptions().as(MyPipelineOptions.class);
...
}
}

在 Beam 2.0 中似乎没有办法访问 PipelineOptions完全在 expand方法。

什么是替代方案?

最佳答案

Pablo's answer是正确的。我还想澄清一下,PipelineOptions 的方式发生了重大变化。被管理。

您可以使用它们来解析并将参数传递给您的 main程序(或任何构建管道的代码),但这些在技术上独立于 PipelineOptions配置管道的运行方式。

在 Beam 中,Pipeline已完全建成,只有在此之后您才选择 PipelineRunnerPipelineOptions控制管道的运行方式。管道本身实际上没有选项。

如果您确实想要 PTransform 的行为(不是它的扩展)要使用一些动态获取的选项,你应该让你的 PTransform接受 ValueProvider like this example in WriteFiles 并且您可以定义返回 ValueProvider 的管道选项like here in ValueProviderTest

关于google-cloud-dataflow - 如何在 Beam 2.0 中的复合 PTransform 中获取 PipelineOptions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45019815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com