Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何构建buildOutputValue方法_Java_Hadoop_Mapreduce - Fatal编程技术网

Java 如何构建buildOutputValue方法

Java 如何构建buildOutputValue方法,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,请,我需要有关此代码的帮助: public class ThirdQueryReducer extends Reducer<IntWritable, Text, NullWritable, Text> { private NullWritable nullWritableKey = NullWritable.get(); private Text outputValue = new Text(); private StringBuilder buildOutputValu

请,我需要有关此代码的帮助:

public class ThirdQueryReducer extends
    Reducer<IntWritable, Text, NullWritable, Text> {

private NullWritable nullWritableKey = NullWritable.get();
private Text outputValue = new Text();

private StringBuilder buildOutputValue(IntWritable key,
        StringBuilder reduceValueBuilder, Text value) {


}

@Override
public void reduce(IntWritable key, Iterable<Text> values, Context context)
        throws IOException, InterruptedException {


}}
公共类ThirdQueryReducer扩展
减速器{
私有NullWritable nullWritableKey=NullWritable.get();
私有文本输出值=新文本();
私有StringBuilder buildOutputValue(可写入密钥,
StringBuilder还原值生成器,文本值){
}
@凌驾
公共void reduce(可写键、可写值、上下文)
抛出IOException、InterruptedException{
}}
我如何实现buildOutputValue?知道mapper中的输出是这样的:
mapDriver.withOutput(newintwritable(1981),newtext(“Mercurey”)

buildOutputValue()必须处理如下日期:

List values=new ArrayList();
添加(新文本(“Pommard”);
添加(新文本(“Gentil”);
带输入的简化驱动程序(新的IntWritable(1980),值)

减速器的输出如下:

reduceDriver.withOutput(NullWritable.get(),新文本(“Pommard\nGentil”)


提前感谢

您可以按如下方式实施:

公共类ThirdQueryReducer扩展 减速器{

private NullWritable nullWritableKey = NullWritable.get();
private Text outputValue = new Text();

private StringBuilder buildOutputValue(IntWritable key,
        StringBuilder reduceValueBuilder, Text value) {
    return reduceValueBuilder.append(value);
}

@Override
public void reduce(IntWritable key, Iterable<Text> values, Context context)
        throws IOException, InterruptedException {
    Iterator<Text> valueIter = values.iterator();
    StringBuilder reduceValueBuilder = new StringBuilder();
    while (valueIter.hasNext()) {
        buildOutputValue(key, valueIter.next(), reduceValueBuilder);
        if (valueIter.hasNext()) {
            reduceValueBuilder.append("\n");
        }
    }
    context.write(NullWritable.get(), new Text(reduceValueBuilder.toString()));
}
private nullwriteable nullwriteablekey=nullwriteable.get();
私有文本输出值=新文本();
私有StringBuilder buildOutputValue(可写入密钥,
StringBuilder还原值生成器,文本值){
返回reduceValueBuilder.append(值);
}
@凌驾
公共void reduce(可写键、可写值、上下文)
抛出IOException、InterruptedException{
迭代器valueIter=values.Iterator();
StringBuilder reduceValueBuilder=新StringBuilder();
while(valueIter.hasNext()){
buildOutputValue(key,valueIter.next(),reduceValueBuilder);
if(valueIter.hasNext()){
reduceValueBuilder.append(“\n”);
}
}
write(nullwriteable.get(),新文本(reduceValueBuilder.toString());
}

}

谢谢,这是一个很好的选择!