問題タブ [fastparquet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
818 参照

parquet - 単一のマルチコア マシンで大規模なデータ フレームのインデックスを作成するときのメモリ使用量

ウィキペディアの CirrusSearch ダンプを、450G 16 コア GCP インスタンスのタイトルでインデックス付けされた Parquet でサポートされた dask データフレームに変換しようとしています。CirrusSearch ダンプは、単一の json 行形式のファイルとして提供されます。英語の Wipedia ダンプには 5M のリカードが含まれており、12G で圧縮され、90+G で拡張されています。重要な詳細は、レコードが完全にフラットではないということです。

これを行う最も簡単な方法は次のとおりです。

最初の問題は、デフォルトのスケジューラーでは 1 つのコアしか使用しないことです。この問題は、分散スケジューラまたはマルチプロセッシング スケジューラを明示的に使用することで回避できます。

私が試したすべてのスケジューラと設定のより大きな問題は、メモリ使用量です。インデックス作成時に、dask がデータフレーム全体をメモリにロードしようとしているようです。これには450Gでも十分なRAMではありません。

  • このタスクのメモリ使用量を減らすにはどうすればよいですか?
  • 試行錯誤をせずに必要な最小メモリを見積もるにはどうすればよいですか?
  • より良いアプローチはありますか?