首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cPickle在使用pathos.multiprocessing时出错?

cPickle在使用pathos.multiprocessing时出错?
EN

Stack Overflow用户
提问于 2016-10-31 22:27:36
回答 1查看 248关注 0票数 0

我正在尝试使用多重处理来加快熊猫的阅读速度。然而,当我使用多进程时,我得到的错误是cPickle.PicklingError:无法选择:属性查找__builtin__.function失败的

当我尝试运行以下命令时:从pathos.multiprocessing导入ProcessPool导入dill

代码语言:javascript
复制
class A(object):
    def __init__(self):
        self.files = glob.glob(\*)

    def read_file(self, filename):
        return pd.read_excel(filename)

    def file_data(self):
        pool = ProcessPool(9)
        file_list = [filename for filename in self.files]
        df_list = pool.map(A().read_file, file_list)
        combined_df = pd.concat(df_list, ignore_index=True)

pathos.multiprocessing不是为解决这个问题而设计的吗?我是不是忽略了这里的什么?

编辑:完整错误代码跟踪到

代码语言:javascript
复制
File "c:\users\zky3sse\appdata\local\continuum\anaconda2\lib\site-packages\pathos-0.2.0-py2.7.egg\
pathos\multiprocessing.py", line 136, in map
return _pool.map(star(f), zip(*args)) # chunksize
  File "C:\Users\ZKY3SSE\AppData\Local\Continuum\Anaconda2\lib\multiprocessing\pool.py", line 251, in map
return self.map_async(func, iterable, chunksize).get()
  File "C:\Users\ZKY3SSE\AppData\Local\Continuum\Anaconda2\lib\multiprocessing\pool.py", line 567, in get
raise self._value
EN

回答 1

Stack Overflow用户

发布于 2016-10-31 23:11:55

Pandas可能正在使用Swig作为C代码的包装器。如果是这样的话,那么dill可能不能正常工作,然后感伤就会转到泡菜上。有一些解决办法,如下所示:How to make my SWIG extension module work with Pickle?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40351492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档