Последовательное выполнение нескольких функций в процессе с использованием многопроцессорности - PullRequest
1 голос
/ 05 августа 2020

Я новичок ie на multiprocessing.

Я пытаюсь выполнить несколько функций последовательно в процессе с использованием многопроцессорности.

Пример:

У меня есть 5 фреймов данных, которые нужно вставить в базу данных в 5 отдельных таблицах. Перед вставкой я хотел бы проверить правильность формата данных, правильность порядка столбцов, краткую проверку качества данных. Предположим, я написал 4 функции, а именно correct_data_format(), column_order() и data_quality(). Добавьте также insert_db() функций.

Я бы хотел запустить эти 4 функции для каждого фрейма данных.

На мой взгляд, у меня должно быть 5 разных процессов для каждого фрейма данных, и каждый процесс должен выполняться последовательно 4 функции, упомянутые выше (correct_data_format() -> column_order -> data_quality -> insert_db)

Как этого добиться с помощью multiprocessing пакета?

1 Ответ

2 голосов
/ 05 августа 2020

Допустим, у вас есть 5 фреймов данных df1, df2, df3, df4 и df5. Следующий код, вероятно, сделает то, что вы хотите:

import multiprocessing

def func(df):
    correct_data_format(df)
    column_order(df)
    data_quality(df)
    insert_db(df)
    ...
    [some other stuff]

pool = multiprocessing.Pool()
pool.map(func, (df1, df2, df3, df4, df5))
    
...