トピックが多少オフになる危険性があるので、sorted = Trueオプションを適用して重要なデータを保存するdaskデータフレームに大きなCSVファイルをロードする簡単なソリューションを示したい処理時間。大規模な順序付けられていないCSVファイルからdask set_index
学習に使用しているおもちゃクラスターのサイズとファイルのサイズ(33GB)に対して、dask unworkable内でset_indexを実行するオプションが見つかりました。
大規模なソートされていないCSVファイル(数十ギガバイト)がdaskデータフレームに読み込まれてすぐにグループを実行する場合は、あらかじめUNIXコマンド "sort"を使用してソートすることをお勧めします。
ソート処理のニーズはごくわずかであり、RAM制限を管理不能な制限を超えて押し込むことはありません。実行/ソートする並列プロセスの数と、バッファとして消費されるラムを定義することができます。これまでのところディスク容量がありますが、これは揺るがします。
ここでのトリックは、コマンドを発行する前に環境内でLC_ALL = Cをエクスポートすることです。どちらかといえば、pandas/dask sortとunix sortは異なる結果を生成します。
ここで私は
export LC_ALL=C
zcat BigFat.csv.gz |
fgrep -v (have headers?? take them away)|
sort -key=1,1 -t "," (fancy multi field sorting/index ? -key=3,3 -key=4,4)|
split -l 10000000 (partitions ??)
を使用しているコードの結果が
ddf=dd.read_csv(.....)
ddf.set_index(ddf.mykey,sorted=True)
希望の準備ができている上述したように、これは私だけだ、
JC
https://stackoverflow.com/help/self-answer 48時間後に回答に回答することができます – Rookie