【发布时间】:2023-03-16 22:13:01
【问题描述】:
我有一个大数据框(百万行),我通过根据特定列进行过滤来创建更多数据框。现在,我想将数据插入到我将执行一些繁重计算的 redis 中。我正在尝试创建一个 redis 实例,并尝试通过多处理将数据插入到 redis 数据库中。我是多处理的新手,在插入数据时遇到错误。我不确定它是否可以完成以及为什么我会收到 thread_lock 错误。谁能解释一下,我该如何继续解决问题。
代码如下:
from multiprocessing import Process, Queue
r=redis.StrictRedis(host='localhost',port='6379',db=0)
q=Queue()
p1=Process(target=insertintoRedis,args=(df1,q,r))
p2=Process(target=insertintoRedis,args=(df2,q,r))
p1.start()
p2.start()
p1.join()
p2.join()
def insertintoRedis( df, q ,r):
for row in df.values:
r.hset(row[-5],row[0],row[-4])
return
我在 p1.start() 处收到此错误:
TypeError: cannot pickle '_thread.lock' object
【问题讨论】:
标签: python redis multiprocessing python-multiprocessing