1

spark parquet ファイルから h2o フレームを作成して、フレームをインポートしようとしています。ファイルは 2GB で、約 12M 行と 12k 列のスパース ベクトルがあります。寄木細工の形式ではそれほど大きくありませんが、インポートには時間がかかります。h2o では、実際には 447 MB​​ の圧縮サイズとして報告されています。実際にはかなり小さい。

私はそれを間違っていますか?実際にインポートを終了したとき(39分かかりました)、h2oにフレームをディスクに保存して次回高速ロードするためのフォームはありますか??

h2o が舞台裏で非常に長い時間がかかる魔法を行っていることは理解していますが、11k x 1M のスパース データでは遅くて巨大なダウンロード csv オプションしか見つかりませんでした。

足りない部分があるような気がします。h2o データのインポート/エクスポートに関する情報は大歓迎です。モデルの保存/ロードはうまく機能しますが、トレーニング/検証/テスト データのロードは非常に遅い手順のようです。

私はそれぞれ 10g のスパークワーカーを 10 個手に入れ、ドライバーに 8g を与えました。これで十分でしょう。

4

2 に答える 2

1

引数を -1 に設定してh2o.exportFile()( h2o.export_file()Python では) を使用します。parts-1 は事実上、クラスター内の各マシンが独自のデータのみをエクスポートすることを意味します。あなたの場合、最終的に 10 個のファイルになり、そうでない場合よりも 10 倍速くなるはずです。

h2o.importFile()それらを再度読み込むには、ロード時に 10 個のパーツすべてを使用して指定します。

frame <- h2o.importFile(c(
  "s3n://mybucket/my.dat.1",
  "s3n://mybucket/my.dat.2",
  ...
  ) )

ファイルの配列を指定することにより、それらは並行してロードおよび解析されます。

ローカル LAN クラスターの場合、これには HDFS を使用することをお勧めします。EC2 でクラスターを実行しているときに S3 にファイルを保持することで、妥当な結果が得られました。

于 2016-12-14T08:58:13.333 に答える