Google cloud dataflow 如何覆盖现有数据流管道选项的默认值

Google cloud dataflow 如何覆盖现有数据流管道选项的默认值,google-cloud-dataflow,Google Cloud Dataflow,我想覆盖现有数据流管道选项的默认值。 例如,我试着这样做 public interface MyOptions extends DataflowPipelineOptions { // Common options here. @Override @Default.Class(DataflowPipelineRunner.class) Class<? extends PipelineRunner<?>> getRunner(); } ..

我想覆盖现有数据流管道选项的默认值。 例如,我试着这样做

public interface MyOptions extends DataflowPipelineOptions {
    // Common options here.
    @Override
    @Default.Class(DataflowPipelineRunner.class)
    Class<? extends PipelineRunner<?>> getRunner();
}

...

MyOptions options = PipelineOptionsFactory.fromArgs(args).withValidation().as(MyOptions.class);
公共接口MyOptions扩展了DataflowPipelineOptions{
//这里有常见的选项。
@凌驾
@Default.Class(DataflowPipelineRunner.Class)
类>getRunner();
}
...
MyOptions options=PipelineOptionsFactory.fromArgs(args).withValidation().as(MyOptions.class);
但这不起作用。
有没有办法覆盖现有选项的默认值?

据我所知,这在您描述的形式中是不可能的。通过使用自定义默认值执行“中间”自定义参数,您可以完成类似的操作:

public interface MyOptions extends PipelineOptions {
  @Default.Class(DataflowPipelineRunner.class)
  Class<? extends PipelineRunner<?>> getMyRunner();
}

PipelineOptions options = PipelineOptionsFactory.fromArgs(args).withValidation();
options.as(DataflowPipelineOptions.class).setRunner(
    options.as(MyOptions.class).getMyRunner());
公共接口MyOptions扩展了PipelineOptions{
@Default.Class(DataflowPipelineRunner.Class)
类>getMyRunner();
}
PipelineOptions=PipelineOptionFactory.fromArgs(args).withValidation();
options.as(DataflowPipelineOptions.class).setRunner(
options.as(MyOptions.class).getMyRunner());