【发布时间】:2016-11-16 15:53:38
【问题描述】:
import multiprocessing
data = range(10)
def map_func(i):
return [i]
def reduce_func(a,b):
return a+b
p = multiprocessing.Pool(processes=4)
p.map(map_func, data)
如何使用reduce_func() 作为并行化map_func() 的reduce 函数。
这是我想要做的pySpark 示例:
rdd = sc.parallelize(data)
result = rdd.map(map_func)
final_result = result.reduce(reduce_func)
【问题讨论】:
-
functools.reduce(reduce_func, p.map(map_func, data))产生一个 0 到 9 的数字列表,随机性取决于多处理映射数据的顺序。