升级到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
的方法。
替代方案是什么?
答案 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="'" />
<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="
" />
</Macro>
程序的参数(或者构建管道的任何代码),但这些参数在技术上独立于配置管道运行方式的PipelineOptions
。
在Beam中,main
已完全构建,只有在您选择PipelineOptions
和Pipeline
后才能控制管道的运行方式。管道本身实际上没有选项。
如果您确实希望PipelineRunner
(不是其扩展版)的行为使用动态获得的某个选项,您应该让PipelineOptions
接受PTransform
{{3}您可以定义一个返回PTransform
like this example in WriteFiles