使用pathos多处理cpickle错误?

时间:2016-11-03 19:52:31

标签: python-2.7 multiprocessing pickle pathos

我正在尝试使用多处理来加速pandas excel阅读。但是,当我使用多处理时,我收到了错误 cPickle.PicklingError:无法pickle:属性查找__builtin __。功能失败

当我尝试运行以下内容时: 进口莳萝 来自pathos.multiprocessing导入ProcessPool

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旨在解决这个问题?我在这里忽略了什么吗?

编辑: 悲情的作者说它不是重复的。 glob.glob(/ *)是我没有给出存储文件的目录,因为它与问题无关。

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

0 个答案:

没有答案