2017-10-27 8 views
2

トピックが多少オフになる危険性があるので、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

答えて

1

を助けがありますこれを私の問題の解決策として掲示する。希望は他人のために働く。

私はこれが最高、最も効率的またはより多くのpythonicであると主張していません! :-)

+0

https://stackoverflow.com/help/self-answer 48時間後に回答に回答することができます – Rookie

関連する問題