Python中数据提取和处理的并行化方法

2024-04-25 08:42:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想并行执行几个数据处理任务。我看到有几个瓶颈:1。数据提取非常耗时,2。对这些数据执行函数也很慢

我最初的方法是使用pool.map(func())来映射函数,该函数提取数据块,然后使用func_1然后使用func_2进行处理,因此这在很大程度上改进了基于“数据”的并行性。下图显示了我目前使用的方法

但是,func_1func_2等相互独立,也可以并行处理提取的数据块,并将结果独立地发送到数据库

我不知道如何用Python解决这个问题。我认为这是某种地图内部的地图。第一个map跨多个进程映射func(),第二个将func\u 1func\u 2在此映射中并行化

enter image description here

关于如何处理这个问题,有什么建议吗?这类任务的一些软件包?


Tags: 数据方法函数数据库map进程地图建议
1条回答
网友
1楼 · 发布于 2024-04-25 08:42:47

总的来说,我发现其中一个步骤支配着其他步骤。在这种情况下,并行化是相当容易的:将func()放入一个单独的程序中,该程序接受要处理的数据并执行以下操作:

number_of_data_ids=100000
seq $number_of_data_ids | parallel python my.py {}

这将为每个CPU核心运行一个my.py,如果func()的计算成本很高,这通常是您想要的

它不会教您如何用Python进行并行编程,但它通常会更快地完成工作,因为您不必调试Python中的并行化部分。相反,您可以专注于编写一个简单的单线程程序,它对一个数据块做正确的事情

相关问题 更多 >

    热门问题