Ошибка оператора шаблона DataFlow в Airflow / Composer из-за пустого местоположения - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь запустить задание DataFlow из DAG Airflow с использованием DataflowTemplateOperator.

В основе моего задания Dataflow лежит шаблон, сгенерированный из задания Google Cloud Dataprep, который читает файл GCS и загружает его встол BigQuery.Это задание потока данных выполняется нормально при запуске из Dataprep, но не выполняется при запуске в 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)

Когда я проверяю консоль потока данных, я эффективно обнаруживаю разницу между обоими выполнением на org.apache.beam.Параметры sdk.options.PipelineOptions.tempLocation:

  • "gs: // ..." при выполнении с Dataprep

  • "-" привыполняется с помощью Airflow DataflowTemplateOperator.

Даже используя dataflow_default_options в моей конфигурации dag, я не могу изменить его, чтобы избежать этого значения "-" (пусто?).

Любая идея о том, как правильно запустить этот шаблон потока данных в Airflow?

...