0

タスク サイド エフェクト ファイルの使用例を教えてください。

public class Map0t extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable >{
 public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {
        
         IntWritable one = new IntWritable(1);
        StringTokenizer tokenizer = new StringTokenizer(value.toString(), ",");
 
        String x;
        String y;
        String z;
                      
        x = tokenizer.nextToken();
        y = tokenizer.nextToken();
        z = tokenizer.nextToken();
                      
        output.collect(new Text(x+" "+z), one);
                       
      }

}

上記Mapper関数の副作用として、new Text(x+" "+y), new Text(z) をHDFSの別フォルダに書き込みたいと思います。

検索しましたが、タスク サイド エフェクト ファイルの使用例が見つかりませんでした。

4

1 に答える 1

0

最適なアプローチではありませんが、私が考えることができる1つの方法は

マッパーの setup() で HDFS のファイルを開き、ファイルに書き込み、マッパーの clean() でファイルを閉じます。マッパーの setup() で一意のファイル名を使用することを確認してください。

于 2012-07-12T02:04:34.420 に答える