Запустить задачу Луиджи, которая зависит от другой задачи

У меня одна задача SeqrMTToESTask это зависит от другого по имени SeqrVCFToMTTask. Вы можете увидеть полный код здесь:

https://github.com/macarthur-lab/hail-elasticsearch-pipelines/blob/master/luigi_pipeline/seqr_loading.py

Теперь я запустил первую задачу отдельно в терминале и сгенерировал выходной файл - sample.mt. Когда запускаю вторую задачу -SeqrMTToESTask Я ожидал, что он проверит вывод первой задачи - sample.mtи если он присутствует, возьмите файл и продолжайте, но это не то, что происходит. Вместо этого я получаю сообщение об ошибке, которое означает, что отсутствуют определенные параметры для первой задачи, например:

luigi.parameter.MissingParameterException: SeqrVCFToMTTask[args=(), kwargs={}]: требуется установить параметр 'source_paths'

Полная команда, которую я использую для запуска второй задачи:

python -u gcloud_dataproc/submit.py --cpu-limit 4 --num-executors 1 --hail-version 0.2 
--run-locally luigi_pipeline/seqr_loading.py SeqrMTToESTask --local-scheduler 
--dest-file hdfs://.../seqr-loading-test/_SUCCESS_TO_ES --source-path hdfs://.../seqr-loading-test/sample.mt 
--spark-home $SPARK_HOME --es-host cp-nodedev1 --es-port 7890 --es-index sample_luigi

Итак, мой вопрос следующий: как мне бежать luigi задача с искрой (gcloud_dataproc/submit.py просто создает команду, которая использует spark-submit), который зависит от другой задачи со своими собственными обязательными параметрами?

1 ответ

По-видимому, правильным путем было просто использовать файл конфигурации luigi (в моем случае seqr-loading-local-GRCh37.cfg) файл, в котором мы указываем все параметры для всех задач. Итак, указав все параметры для задач, я смог запустить его следующим образом:

LUIGI_CONFIG_PATH=luigi_pipeline/configs/seqr-loading-local-GRCh37.cfg python 
-u gcloud_dataproc/submit.py --cpu-limit 4 --num-executors 1 --hail-version 0.2 
--run-locally luigi_pipeline/seqr_loading.py SeqrMTToESTask --local-scheduler --spark-home $SPARK_HOME
Другие вопросы по тегам