问题描述
我想在实际运行管道或其内部之前,将数据流的Job ID捕获为字符串。
作为一个例子,假设我有这个:
DataflowOptions options = optionsConst.getOptions();
Pipeline p = Pipeline.create(options);
String jobID = doSomthing(); <-- I'd like to grab the job id here
PCollection<KV<String,Object>> refData = p.apply("BigTable Access",BigtableIO.read()
.withProjectId(options.getBigtableProjectId())
.withInstanceId(options.getBigtableInstanceId())
.withTableId(options.getLookupTableId()))
.apply("Keep tags valid versions",ParDo.of(new MethodThatDoesSomethingWithJobID(**jobId**))); <-- Or inside this
解决方法
无法执行此操作,因为作业ID是在您开始运行它后创建的。您可以做的就是在开始运行管道后保存输出,或者返回list job running