我可以举例说明如何使用任务副作用文件吗?
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函数中将新文本(x +“”+ y),新文本(z)作为副作用写入hdfs中的不同文件夹。
我搜索过但找不到任何关于如何使用任务副作用文件的示例。
请帮助我。
提前致谢!
答案 0 :(得分:0)
不是最佳方法,但我能想到的一种方法是
在映射器的setup()中打开HDFS中的文件,写入文件,然后在映射器中的clean()中关闭该文件。人们认为要确保在映射器的setup()中使用唯一的文件名。