我有一个CustomSource和CustomSink。这些源和接收器需要特定的参数,例如必须读取数据的位置以及必须写入结果的位置。
我想将这些参数作为args传递给PipelineOption。如何从PipelineOption获取这些参数?
编写我自己的Option扩展PipelineOption是唯一的方法吗?
谢谢, 萨姆。
答案 0 :(得分:2)
要创建自己的选项,首先要扩展PipelineOptions接口:
public static interface Options extends PipelineOptions {
String getInput();
void setInput(String value);
String getOutput();
void setOutput(String value);
}
然后在创建PipelineOptions时,您将执行以下操作:
public static void main(String[] args) {
Options options = PipelineOptionsFactory.fromArgs(args).withValidation().as(Options.class);
...
}
如果您想要检索选项:
Options options = pipeline.getOptions().as(Options.class);
options.getInput();
您还可以查看单词计数示例here。