如何在Beam 2.0中的复合PTransform中获取PipelineOptions?

时间:2017-07-10 19:04:52

标签: google-cloud-dataflow apache-beam

升级到Beam 2.0后,Pipeline课程再也没有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的方法。

替代方案是什么?

1 个答案:

答案 0 :(得分:2)

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

您可以使用它们来解析和传递<Macro name="ReorderSQL" Ctrl="no" Alt="no" Shift="no" Key="0"> <Action type="0" message="2316" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2306" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2442" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2177" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2180" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2180" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2318" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2327" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2179" wParam="0" lParam="0" sParam="" /> <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> <Action type="1" message="2170" wParam="0" lParam="0" sParam="=" /> <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> <Action type="0" message="2316" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2306" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2442" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2177" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2180" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2180" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2318" wParam="0" lParam="0" sParam="" /> <Action type="1" message="2170" wParam="0" lParam="0" sParam="&apos;" /> <Action type="0" message="2179" wParam="0" lParam="0" sParam="" /> <Action type="1" message="2170" wParam="0" lParam="0" sParam="&apos;" /> <Action type="1" message="2170" wParam="0" lParam="0" sParam="&#x000D;" /> <Action type="1" message="2170" wParam="0" lParam="0" sParam="&#x000A;" /> </Macro> 程序的参数(或者构建管道的任何代码),但这些参数在技术上独立于配置管道运行方式的PipelineOptions

在Beam中,main已完全构建,只有在您选择PipelineOptionsPipeline后才能控制管道的运行方式。管道本身实际上没有选项。

如果您确实希望PipelineRunner(不是其扩展版)的行为使用动态获得的某个选项,您应该让PipelineOptions接受PTransform {{3}您可以定义一个返回PTransform like this example in WriteFiles

的管道选项