0
私は(5GBの圧縮ファイル)をメモリ(aws)に読み込み、データフレームを作成して、それを小さなデータフレームに分割しようとしています。 2つの列の値。最終的には、これらのサブセットをすべてそれぞれのファイルに書きたいと思います。巨大なデータフレームを小さなデータフレームに分割し、SPARK(Python)を使ってファイルに書き込む
私は、スパークで実験を始め、データ構造に慣れてきました。私が従おうとしていたアプローチは、このようなものでした。
- は、これらの2列
のすべての値の独自のリストを識別2列でファイル
- ソートそれを読んで(再パーティションと、まだ慣れていないし、それが役立つかどうかを知りません)
- リスト の値を使用してフィルタリングすることにより、より小さなデータフレームを作成 - - このリスト を反復処理ファイルへの書き込み
df.sort("DEVICE_TYPE", "PARTNER_POS") df.registerTempTable("temp") grp_col = sqlContext.sql("SELECT DEVICE_TYPE, PARTNER_POS FROM temp GROUP BY DEVICE_TYPE, PARTNER_POS") print(grp_col)
私はこれがよりクリーンで効率的なやり方であるとは思いません。出力に基づいて並列実行されるetlがあるので、これをファイルに書き込む必要があります。どんな勧告?
おかげで..私は同じで、タブ区切りファイルとして保存したいですファイル名に.. partner_posとdevice_typeを追加したディレクトリ..このパーティションは、私が読んだことから、この種の柔軟性を許しません。私の製造スパークバージョンは1.6.2です。スパークストリーミングは考慮する必要がありますが、ソースファイルがgzipされていると私はそれが動作する方法はありません – meajmal