Как распространить скрипт Python для параллельной, но последовательной обработки больших данных? - PullRequest
0 голосов
/ 17 сентября 2018

Вот сценарий, который мы должны решить:

  • Извлечь все файлы PDF с сервера.
  • конвертировать PDF в PNG
  • сделать майнинг на PNG и сгенерировать TXT
  • анализ TXT для генерации CSV
  • объединить CSV

Я написал питона Для каждой из вышеперечисленных задач имеется всего 5 функций, а выход первой функции служит входом для второй функции, поэтому мы не можем запустить все вышеупомянутые функции параллельно. Одна задача должна быть завершена, прежде чем другая сможет работать.

Существует несколько папок, в которых сохраняются PDF-файлы, и их необходимо вводить вручную, поэтому в настоящее время мы вручную запускаем несколько экземпляров кода и, указав, какую папку выполнять, новые папки продолжают загружаться со временем.

Обработка одной папки занимает около часа, если кто-то предложит архитектуру и инструмент для ускорения всего процесса и минимизации ручного труда. Вы можете предложить инструменты / библиотеки, которые мы могли бы использовать.

Спасибо.

1 Ответ

0 голосов
/ 17 сентября 2018

Я бы использовал что-то вроде apache-airflow

Вы определяете свой процесс как прямой ациклический граф.

Воздушный поток Apache будет управлять зависимостями задач и распараллеливанием для вас.

Имейте в виду, что никакие данные не будут отправлены из одной задачи в другую. Если вам нужны задачи-коммуникации, вам нужно определить, как это сделать (используя базу данных, файлы, ...)

...