Запустить задачу Луиджи, которая зависит от другой задачи
У меня одна задача SeqrMTToESTask
это зависит от другого по имени SeqrVCFToMTTask
. Вы можете увидеть полный код здесь:
Теперь я запустил первую задачу отдельно в терминале и сгенерировал выходной файл - 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