MapReduceJava程序

MapReduceJava程序,mapreduce,Mapreduce,在我的Map Reduce Java程序中,TokenizerMapper.Java程序报告存在类型不匹配。当我试图从文本文档输出bigram时,上面的错误出现在“String temp=itr.nextToken().toLowerCase();”行中,它报告类型不匹配void被分配给了字符串。映射器方法的Java代码如下所示: import java.io.IOException; import java.util.StringTokenizer; import org.apache.had

在我的Map Reduce Java程序中,TokenizerMapper.Java程序报告存在类型不匹配。当我试图从文本文档输出bigram时,上面的错误出现在“String temp=itr.nextToken().toLowerCase();”行中,它报告类型不匹配void被分配给了字符串。映射器方法的Java代码如下所示:

import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class TokenizerMapper extends Mapper<Object, Text, Text,IntWritable> { 
    private final IntWritable one = new IntWritable(1);
    private Text data = new Text();
    public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
        StringTokenizer itr = new StringTokenizer(value.toString(), "-- \t\n\r\f,.:;?![]'\"");
        while (itr.hasMoreTokens()) {
          String temp = itr.nextToken().toLowerCase();
          if(itr.hasMoreTokens()){
              temp += "," + itr.nextToken().toLowerCase();

          }

          data.set(temp);
          context.write(data, one);
        }
    }
}
import java.io.IOException;
导入java.util.StringTokenizer;
导入org.apache.hadoop.io.IntWritable;
导入org.apache.hadoop.io.Text;
导入org.apache.hadoop.mapreduce.Mapper;
公共类TokenizerMapper扩展映射器{
私有最终可写文件=新的可写文件(1);
私有文本数据=新文本();
公共void映射(对象键、文本值、上下文上下文)引发IOException、InterruptedException{
StringTokenizer itr=新的StringTokenizer(value.toString(),“-\t\n\r\f,.:;?![]”\“);
而(itr.hasMoreTokens()){
字符串temp=itr.nextToken().toLowerCase();
if(itr.hasMoreTokens()){
temp+=”,“+itr.nextToken().toLowerCase();
}
数据集(温度);
写(数据,一个);
}
}
}
你能帮我解决这个问题吗?这个程序确实在另一个系统中工作,但当我尝试从Cloudera虚拟机运行它时,问题就出现了

多谢各位