Возможно, вам нужна структура конвейера данных, поскольку требуется ввод 'следующего файла' , пока вывод предыдущего spark-submit
еще выполняется. Luigi - это платформа Python, которая помогает вам создавать желаемые конвейеры пакетных заданий. Задача имеет методы requires()
, run()
и output()
для управления рабочим процессом и зависимостями между каждой задачей.
Расширяя класс PySparkTask
(для PySpark) или SparkSubmitTask
и переопределяя их свойства, конвейер в вашем случае будет:
- Task1 : выходной файл 1, нет обязательной задачи
- Task2 : выходной файл2, требуется file1
- Task3 : выходной файл3, требуется file2
- ...
Таким образом, вход задачи является выходом другой задачи и так далее. Если одна задача не была выполнена (говорит «Задача 3»), только «Задача 3» должна быть повторно отправлена, поскольку file1 и file2 уже есть .