0

リスト内のリストのそれぞれがテキストの文であるとしましょう。異なるスレッドで処理するために、このデータを分割したいと思います。以前subListはデータを分割し、処理のために別のスレッドに送信していました。これは、データを分割するための標準的なアプローチですか? そうでない場合は、そのための標準的なアプローチを提案していただけますか?

4

1 に答える 1

2

これは、リストまたはこれらのサブリストのいずれかを「構造的に変更」しない限り機能します。読み取り専用処理は問題ありません。

何億ものレコードを処理するための「ビッグデータ」アプローチは他にもたくさんあります。

  • プログラムが失敗した場合 (例: OutOfMemoryError)、おそらく最初からやり直す必要はありません。
  • 単一の JVM メモリ内でデータを共有できない時点で、1 台以上のマシンを問題に投げ込みたいと思うかもしれません。
  • 各文を処理した後、中間結果を構築し、それをステップ 2 として処理していますか? 各ステップの前にデータを再分割するステップのパイプラインをまとめる必要がある場合があります。
  • 文が多すぎて一度にすべてを記憶できない場合があります。

この種の作業のための非常に一般的なツールはHadoopです。データをHDFSにコピーし、データに対して map-reduce ジョブ (または複数のジョブ) を実行し、完了したら HDFS からデータをコピーします。

実装するより簡単な方法は、データベースを使用し、整数sentence_id列の異なる範囲を異なるスレッドに割り当てて、別のテーブルに出力を構築することです。

于 2012-07-08T14:59:19.473 に答える