テキストファイルとzipファイルの両方を処理できるMapReduceアプリケーションを作成したいと思います。このために、テキスト用とzip用のさまざまな入力形式を使用したいと思います。そうすることは可能ですか?
質問する
1456 次
3 に答える
6
@ChrisWhiteの回答から少し拡張すると、必要なのはカスタムを使用することでありInputFormat
、RecordReader
それはZIPファイルで機能します。ここにサンプルのZipFileInputFormatがあり、ここにサンプルのZipFileRecordReaderがあります。
これを考えると、Chrisが提案しMultipleInputs
たように、を使用する必要があります。ファイルの種類ごとにカスタムマッパーが必要ない場合は、次のようにします。
MultipleInputs.addInputPath(job, new Path("/path/to/zip"), ZipFileInputFormat.class);
MultipleInputs.addInputPath(job, new Path("/path/to/txt"), TextInputFormat.class);
于 2013-01-15T17:01:11.730 に答える
3
MultipleInputs(古いAPI、新しいAPI)のAPIドキュメントをご覧ください。あまり自明ではありませんが、ジョブ構成でaddInputPathメソッドを呼び出し、入力パス(glob、入力形式、および関連するマッパー)を構成していることがわかります。
あなたはいくつかの例のためにグーグルすることができるはずです、実際ここにいくつかの使用法を示すSOの質問/答えがあります
于 2013-01-15T12:15:00.870 に答える
0
InputFormat
読み取られている入力の種類を確認し、その確認に基づいて必要なものを呼び出すことができるカスタムを作成することを検討してください。InputFormat
于 2013-01-15T10:22:04.397 に答える