我正在编写一个pyspark代码将调用的python库。作为这个库的一部分,有一个缓慢的函数
我想缓存这个函数的结果,以便在内存中保存一个表(至少在每个工人中)
例如:
def slow_function(x):
time.sleep(10)
return x*2
class CacheSlowFunction():
def __init__(self):
self.values = {}
def slow_function(x):
if x in self.values:
return self.values[x]
else:
res = slow_function(x)
self.values[x] = res
return res
def main(x):
csf = CacheSlowFunction()
s = 0
for i in range(x):
s += csf.slow_function(i)
return s
代码由spark调用,如下所示:
map(main, [i for i in range(10000)])
现在,代码将为每个调用创建一个表(self.values
)。是否可以在同一个辅助进程上进行的计算中至少共享此表
目前没有回答
相关问题 更多 >
编程相关推荐