下面的代码处理大量数据,我想问一下如何在Python中使用多处理模块进行并行处理,以加快速度。 任何帮助表示赞赏
pats = []
for chunk in code_counter(patients, codes):
pats.append(chunk)
def code_counter(patients, codes):
for key, group in itertools.groupby(patients, key=operator.itemgetter('ID')):
group_codes = [item['CODE'] for item in group]
yield [group_codes.count(code) for code in codes]
答案 0 :(得分:1)
我认为你的问题在于使用收益率。我认为你无法从不同的流程中获取数据。我明白,你使用yield cuz你不能加载会导致ram超载的数据“inline”。
也许你可以看看多处理队列 http://docs.python.org/2/library/multiprocessing.html#exchanging-objects-between-processes
我并没有真正了解您要对代码执行的操作,因此无法提供精确的示例。