在开始工作之前,我使用简单的函数来恢复状态:
import pickle, gzip
def load(filename):
"""Loads a compressed object from disk
"""
file = gzip.GzipFile(filename, 'rb')
return pickle.load(file)
records_df = load("records_all_in_one.gzp")
问题是恢复状态是我的应用程序的瓶颈。有没有什么简单的方法来告诉gzip/pickle组合来利用多进程?
当然,我总是可以拆分数据结构并从多个核心上的多个文件中读取它,但我宁愿看看是否有更聪明的方法来做到这一点。
最后一点信息--正在恢复的数据是一个大型的pandas DataFrame。
发布于 2012-06-18 23:49:37
您可以运行GZip子进程,这是pigz的并行实现。
发布于 2012-06-18 21:00:04
另一种方法是运行并行gzip实现,并使用python处理未压缩的数据。
您可以使用子进程来运行gzip实例,或者使用管道并通过stdin读取数据。
发布于 2012-06-18 21:34:44
您可以尝试使用cPickle
,因为它是up to 1000 times faster than pickle
https://stackoverflow.com/questions/11083038
复制相似问题