Как выполнить несколько заданий зажигания в серии один за другим на Pyspark? - PullRequest
0 голосов
/ 06 марта 2020

В настоящее время у меня есть несколько файлов spark-submit *. sh. Каждый файл генерирует таблицу, которая используется в следующем файле.

Есть ли способ последовательно запускать эти файлы один за другим?

На данный момент я пытался добавить все коды отправки spark один за другим другой в одном файле и попробовал

sh spark_submit_ordered_combined.sh 

в терминале. Но при этом все коды начинаются с одного go.

Любая помощь будет великолепной.

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Посмотрите на Apache Воздушный поток :

Использование воздушного потока для создания рабочих процессов в виде направленных ациклических c графиков (DAG) задач. Планировщик воздушного потока выполняет ваши задачи на массиве рабочих, следуя указанным зависимостям.

Здесь Начало работы с Airflow и в этом посте используется Airflow с Pyspark

0 голосов
/ 06 марта 2020

Возможно, вам нужна структура конвейера данных, поскольку требуется ввод 'следующего файла' , пока вывод предыдущего spark-submit еще выполняется. Luigi - это платформа Python, которая помогает вам создавать желаемые конвейеры пакетных заданий. Задача имеет методы requires(), run() и output() для управления рабочим процессом и зависимостями между каждой задачей.

Расширяя класс PySparkTask (для PySpark) или SparkSubmitTask и переопределяя их свойства, конвейер в вашем случае будет:

  • Task1 : выходной файл 1, нет обязательной задачи
  • Task2 : выходной файл2, требуется file1
  • Task3 : выходной файл3, требуется file2
  • ...

Таким образом, вход задачи является выходом другой задачи и так далее. Если одна задача не была выполнена (говорит «Задача 3»), только «Задача 3» должна быть повторно отправлена, поскольку file1 и file2 уже есть .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...