2

単純な関数を使用して、作業を開始する前に状態を復元しています:

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 です。

4

3 に答える 3

3

gzipの並列実装であるpigzサブプロセスを実行できます。

于 2012-06-18T15:49:37.350 に答える
2

これを行う別の方法は、並列gzip実装を実行し、Pythonを使用して非圧縮データを処理することです。

サブプロセスを使用してgzipインスタンスを実行するか、パイプを使用してstdinを介してデータを読み込むことができます。

于 2012-06-18T13:00:04.157 に答える
0

よりも最大 1000 倍高速であるため、cPickle代わりに使用してみることができます。pickle

于 2012-06-18T13:34:43.750 に答える