由于空的tempLocation,DataFlow模板操作员在Airflow / Composer中失败

时间:2019-02-25 22:12:39

标签: google-cloud-dataflow airflow google-cloud-composer

我正在尝试使用DataflowTemplateOperator从Airflow DAG运行DataFlow作业。

“我的数据流”作业基于从Google Cloud Dataprep作业生成的模板,该模板读取GCS文件并将其加载到BigQuery表中。 从Dataprep启动时,此Dataflow作业运行正常,但在Airflow中启动时失败,并显示以下错误:

java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1283)
at java.util.regex.Matcher.reset(Matcher.java:309)
at java.util.regex.Matcher.<init>(Matcher.java:229)
at java.util.regex.Pattern.matcher(Pattern.java:1093)
at org.apache.beam.sdk.io.FileSystems.parseScheme(FileSystems.java:443)
at org.apache.beam.sdk.io.FileSystems.matchNewResource(FileSystems.java:529)
at org.apache.beam.sdk.io.gcp.bigquery.BigQueryHelpers.resolveTempLocation(BigQueryHelpers.java:350)
at org.apache.beam.sdk.io.gcp.bigquery.BatchLoads$4.getTempFilePrefix(BatchLoads.java:390)

当我检查Dataflow控制台时,我有效地检测到在org.apache.beam.sdk.options.PipelineOptions.tempLocation参数上的两次执行之间的差异:

  • “ gs:// ...”与Dataprep执行时

  • “-”与Airflow DataflowTemplateOperator执行时。

即使在dag配置中使用了dataflow_default_options,我也无法对其进行修改以避免该“-”(空?)值。

关于如何在Airflow中正确运行此Dataflow模板的任何想法吗?

0 个答案:

没有答案