我有一项任务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
使用 spark 运行任务(gcloud_dataproc/submit.py
只是构造使用的命令spark-submit
),它依赖于具有自己所需参数的其他任务?