2

テキストファイルとzipファイルの両方を処理できるMapReduceアプリケーションを作成したいと思います。このために、テキスト用とzip用のさまざまな入力形式を使用したいと思います。そうすることは可能ですか?

4

3 に答える 3

6

@ChrisWhiteの回答から少し拡張すると、必要なのはカスタムを使用することでありInputFormatRecordReaderそれは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 に答える