如何从管道内部或管道运行之前获取数据流作业ID?

问题描述

我想在实际运行管道或其内部之前,将数据流的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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...