【发布时间】:2020-01-29 12:33:55
【问题描述】:
我有一个包含数百万条记录和数百列的 pyspark 数据框(以下示例)
clm1, clm2, clm3
code1,xyz,123
code2,abc,345
code1,qwe,456
我想根据 clm1 将其划分为多个数据帧,即 clm1=code1 的单独数据帧和 clm1=code2 的单独数据帧等等,然后处理它们并将结果写入单独的文件中。我想并行执行此操作以加快该过程。我正在使用以下代码:
S1 = myclass("code1")
S2 = myclass("code2")
t1 = multiprocessing.Process(target=S1.processdata,args=(df,))
t2 = multiprocessing.Process(target=S2.processdata,args=(df,))
t1.start()
t2.start()
t1.join()
t2.join()
但我遇到了错误
Method __getstate__([]) does not exist
如果我使用 threading.Thread 而不是 multiprocessing.Process 它工作正常,但这似乎并没有减少总时间
【问题讨论】: