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);
                       
      }

}

我想将 new Text(x+" "+y), new Text(z) 作为上述 Mapper 函数中的副作用写入 HDFS 中的不同文件夹。

我搜索但找不到任何关于如何使用任务副作用文件的示例。

4

1 回答 1

0

不是最佳方法,但我能想到的一种方法是

在映射器的 setup() 中打开 HDFS 中的文件,写入文件,然后在映射器的 clean() 中关闭文件。一种方法是确保在映射器的 setup() 中使用唯一的文件名。

于 2012-07-12T02:04:34.420 回答