Я пытаюсь читать с очень большого информационного кадра, используя несколько потоков.Поскольку каждый поток создает свою собственную копию df, у меня возникает проблема с памятью.Поэтому я хочу разделить df между потоками только для чтения.Я провел поиск по всему, и кажется, что передача пространства имен - это то, что должно быть сделано, но использование следующего не решает проблему.
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.Что-то не так с этим подходом?Есть ли что-нибудь еще, что я могу использовать?Я также хочу передать различные типы объектов, если это возможно.
Приведенный выше код является лишь примером моего приложения.