私のreduceクラスでは、複数の出力を使用して多くのファイルを作成したいと考えています。ファイルの名前は、reduce クラスで生成されたデータから動的に派生する必要があります。たとえば。for ループを考慮すると、各出力ファイルには、for ループ内の arraylist の i 番目の値に対応する名前が付けられます。
私はreduceクラスでそれを行うことができます。しかし、ジョブ conf では、MultipleOutputs.getNamedOutput() で対応する値を設定できません。
reduce クラスの計算から複数の出力ファイル名を動的に生成したいと考えています。これを達成する方法はありますか?
よりよく説明するには:
reduce クラスには、次のものがあります。
mos.getCollector(パス、レポーター).collect(キー、値); ここでは、パスを動的に生成するのに問題はありません。ファイル名。
しかし、仕事のconfでは、
MultipleOutputs.addNamedOutput(conf、パス、TextOutputFormat.class、LongWritable.class、Text.class); ここが問題です。reduce クラスで動的に生成されるファイル名、viz パスに対応する必要があります。
それを行う方法はありますか?または、他の代替手段があります。
助けてください!
ありがとう!!!