我正在尝试使用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模板的任何想法吗?