Hadoop mapreduce を実装しています。マップへの私の入力は、以下に示す表です。
カスタマー ID、IP、属性、日付
顧客1、IP1、属性1、日付1
顧客2、IP2、属性1、日付2
マッパーからの出力は複数のファイルである必要があります
ファイル 1 : IP-m-00000
キー、値
顧客1_IP1、日付1
顧客2_IP2、日付2
ファイル 2: Attr-m-00000
キー、値
customer1_attr1 , date1
customer2_attr1 、date2
Hadoop 2.2.0 がインストールされており、次のコードを使用しています
MultipleOutputs.addMultiNamedOutput (job, "IP", TextOutputFormat.class, Text.class, Text.class); // in the Driver.class
MultipleOutputs.getCollector("IP", context).collect(txtKey, txtValue); // in the Mapper.class
ここで、txtKey は customerid_$Attribute、txtValue は日付です。
別のパーソナル マシンに 2.8.0 をインストールしましたが、MultipleOutputs オブジェクトには、実装が非常に簡単な書き込み機能があります。hadoop-2.8.0 にある MultipleOutputs.write() は、hadoop-2.2.0 では実装されていません。
MultipleOutputs.write() 機能がない Hadoop-2.2.0 で multipleOutput ファイルを書き込む方法についてのアイデアはありますか?
この質問に変更が必要な場合は、質問を閉じずにコメントしてください。
ありがとう、達人