我正在尝试使用多个线程从非常大的数据框中读取数据。由于每个线程都创建自己的df副本,所以我遇到了内存问题。因此,我想在线程之间共享df以便从中读取。我进行了搜索,似乎应该传递名称空间,但是使用followng不能解决问题。
df = pd.DataFrame(np.random.uniform(0,10,16))
chunks = [h for h in range(df.shape[0])]
mgr = Manager()
ns = mgr.Namespace()
ns.data = df
pool = Pool(8)
func = partial(test_function, ns)
pool.map(func, chunks)
pool.close()
pool.join()
在函数中,我使用ns.data访问df。这种方法有什么问题吗?还有什么我可以用的吗?我还想尽可能传递不同的对象类型。
上面的代码只是我的应用程序的示例。