2

このようなレコードの入力があります、a|1|Y、b|0|N、c|1|N、d|2|Y、e|1|Y

今、マッパーで、3 番目の列の値を確認する必要があります。「Y」の場合、そのレコードはレデューサーに移動せずに出力ファイルに直接書き込む必要があります。つまり、「N」値のレコードは、さらに処理するためにレデューサーに移動する必要があります。

したがって、a|1|Y、d|2|Y、e|1|Y はレデューサーに行くべきではなく、b|0|N、c|1|N はレデューサーに行ってから出力ファイルに行く必要があります。

これどうやってするの??

4

3 に答える 3

2

おそらくできることは、MultipleOutputs を使用することです。「Y」タイプと「N」タイプのレコードをマッパーから 2 つの異なるファイルに分離するには、ここをクリックしてください。

次に、新しく生成された 2 つの「Y」および「N」タイプのデータ セットに対して個別のジョブを実行します。「Y」タイプの場合、リデューサーの数を 0 に設定して、リデューサーが使用されないようにします。そして、「N」型の場合は、レデューサーを使用して希望どおりに実行します。

お役に立てれば。

于 2013-06-20T13:18:47.483 に答える