我正确使用python的apply_async吗?

时间:2016-08-01 15:12:28

标签: python python-2.7 multiprocessing python-multiprocessing

这是我第一次尝试在Python中使用多处理。我试图按行在我的数据框fun上并行化我的函数df。回调函数只是将结果附加到我稍后将要排序的空列表中。

这是使用apply_async的正确方法吗?非常感谢。

import multiprocessing as mp

function_results = []
async_results = []

p = mp.Pool() # by default should use number of processors

for row in df.iterrows():
    r = p.apply_async(fun, (row,), callback=function_results.extend)
    async_results.append(r)

for r in async_results:
    r.wait()

p.close()
p.join()

1 个答案:

答案 0 :(得分:1)

看起来好像使用mapimap_unordered(取决于您是否需要订购结果)更适合您的需求

rdd.lookup(key)