Python 使用多处理在进程内按顺序运行多个函数
我是多处理方面的新手 我试图实现的是使用多处理在一个进程内按顺序运行多个函数 例如: 我有5个数据帧需要插入到5个单独表中的数据库中。 在插入之前,我要检查数据格式是否正确,列顺序是否正确,以及数据质量的简要检查。 假设我已经编写了4个函数,即Python 使用多处理在进程内按顺序运行多个函数,python,multiprocessing,Python,Multiprocessing,我是多处理方面的新手 我试图实现的是使用多处理在一个进程内按顺序运行多个函数 例如: 我有5个数据帧需要插入到5个单独表中的数据库中。 在插入之前,我要检查数据格式是否正确,列顺序是否正确,以及数据质量的简要检查。 假设我已经编写了4个函数,即correct\u data\u format(),column\u order()和data\u quality()。还添加一个insert_db()函数 我想为每个数据帧运行这4个函数 在我看来,每个数据帧应该有5个不同的进程,每个进程应该按照上述4个
correct\u data\u format()
,column\u order()
和data\u quality()
。还添加一个insert_db()
函数
我想为每个数据帧运行这4个函数
在我看来,每个数据帧应该有5个不同的进程,每个进程应该按照上述4个函数的顺序运行(correct\u data\u format()
->column\u order
->data\u quality
->insert\u db
)
如何使用
多处理
包实现这一点?假设您有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))
您可以使用multiprocessing.Pool,定义一个在数据帧上工作的函数,执行所有需要的检查并返回True/False,然后使用Pool.map方法,如果我不想将所有函数包装成一个函数,可以吗?有可能实现我所描述的吗?Pool.map不适用于lambda函数,因此您必须定义一些函数或类。也许有一种方法我不知道与其他一些api的多处理