2016-08-25 6 views
1

私は多くのdaskデータフレームを含むデータベースのようなオブジェクトを持っています。データを保存して保存し、翌日に再読み込みして分析を続けたいと思います。Dask:後で使用するためにデータフレームをピクルすることは安全ですか?

したがって、pickleを使用してdaskデータフレーム(計算結果ではなく、単に「計算計画」)を保存しようとしました。どうやら、それは動作します(少なくとも、正確に同じマシン上のオブジェクトをアンピクルした場合)...しかし、いくつかの落とし穴がありますか?

+1

いずれのマシンでも再生でき、同じ結果が得られます。 – grael

+0

データフレームの基礎となるデータは同じパスの下でアクセス可能であり、安全であることを保証するだけで十分ですか? –

+0

はい、安全です。ピクルは、オブジェクトをピクルされたときと同じ状態に復元するために必要なものすべてを保存します。 – grael

答えて

2

一般的にはです。通常はです。

  1. あなたdask.dataframeは、このようなdf.apply(lambda x: x)とのようにカスタム関数が含まれている場合、内部関数がpickleableではありません。しかし、いくつかの注意点があります。しかし、それでもまだシリアライズ可能ですcloudpickle
  2. dask.dataframeにローカルコンピュータでのみ有効なファイルへの参照が含まれていて、それでもシリアライズ可能な場合、別のマシン上の再シリアル化されたバージョンはもはや役に立ちません
  3. Executor.persistをクラスタで使用する場合など、dask.dataframeにdask.distributedFutureのオブジェクトが含まれている場合、これらは現在シリアル化できません。
  4. バージョン0.11.0以上を使用することをおすすめします。
関連する問題