複数のセクションを持つテキスト ドキュメントがあり、各セクションにはタイトルと本文があります。これは、特定の基準でフィルタリングし、その中のジャンク文字をすべて削除する必要があります。mapr 出力で行の順序がごちゃごちゃになるため、map reduce でこのドキュメントを処理すると問題が発生します。そのため、カスタム データ型 linenumValuetuple を導入し、値のテキストで読み取られるときに各行に行番号を割り当てて、リデューサーの行番号とキーをタイトル ID として並べ替えます。しかし問題は、各セクションが異なるマッパーに分割され、単一のセクションが異なるタイトル ID を取得することです。すべての行で同じタイトル ID を取得し、入力と同じ順序で出力で並べ替えることができるように、単一のセクションを 1 つの分割として作成するにはどうすればよいですか ???
1 に答える
2
独自の InputFormat と RecordReader を作成する必要があります。詳細については、こちらと yahoo チュートリアルを参照してください。問題は、複数のブロック サイズにまたがるドキュメントが分割され、すべての分割が別のマッパーに送られることです。XMLInputFormat など、特定の入力形式を使用できます。入力をキー値形式と見なすことができれば、それを SequenceFileFormat に前処理することもできます。これは理想的だと思います。
于 2013-10-22T13:03:47.067 に答える