Python сохраняет результаты параллельного цикла в один «файл» или базу SQL - PullRequest
0 голосов
/ 13 мая 2019

Я выполняю несколько вычислительно дорогостоящих операций над 75 000 файлов. чтобы ускорить я распараллелил процесс

import multiprocessing; num_cores = multiprocessing.cpu_count()-6

def ParseOneDocument(row):
   ## loads data
   ## returns a csv with important data for each iteration ("row")
   with open(path+'eachletter_'+str(row)+".csv", 'w+', newline='') as myfile:
            wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
   # replace the above with an SQL access

results = Parallel(n_jobs=num_cores)(delayed(ParseOneDocument)(row) for row in NumberOfDocuments)

На более позднем этапе я собираю все созданные csv и добавляю их. Это работает. Но это громоздко, если кто-то хочет перезапустить код и удалить все csv.

В идеале был бы способ сохранить результаты в базе данных SQL (?), Которая может оцениваться одновременно из нескольких потоков параллельного цикла.

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