2017-08-21 2 views
1

S3に保存(圧縮)したいいくつかのcsvファイルに大きなデータセット(〜1テラバイトのデータ)があります。圧縮ファイルをdaskに読み込むのは問題がありました。サイズが大きすぎるためです。私の最初の解決策は、各csvを管理可能なサイズに分割することでした。これらのファイルは、次のように読まれています。私は、完全なデータセットを摂取する前に大きな圧縮CSVをS3に使用してDaskで使用する方法

ddf = dd.read_csv('s3://bucket-name/*.xz', encoding = "ISO-8859-1", 
        compression='xz', blocksize=None, parse_dates=[6]) 

- これは正しいアプローチである、または私は必要なものを達成するために良い方法はありますか?

答えて

1

これは私には分かりやすいようです。

ここで発生する唯一の課題は、圧縮によるものです。圧縮形式がランダムアクセスをサポートしていない場合、Daskは大きなファイルを複数の小さな部分に分割できません。これは、xzのようなランダムアクセスをサポートするが、その特定のファイル用に構成されていないフォーマットでも当てはまります。

多くの小さなファイルに手動でファイルを分割し、上記のようにblocksize=Noneを使用すると、この場合には良い解決策です。

関連する問題