MapReduce Java程序

时间:2016-10-08 18:34:59

标签: mapreduce

在我的Map Reduce Java程序中,TokenizerMapper.java程序报告存在类型不匹配。当我尝试从文本文档输出bigrams时,上面的错误发生在行" String temp = itr.nextToken()。toLowerCase(); "报告类型不匹配的位置将void分配给字符串。我的mapper方法的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);
        }
    }
}

你能帮我解决一下这个问题吗?该程序确实在不同的系统中工作,但当我尝试从Cloudera虚拟机运行它时会出现问题。

非常感谢。

0 个答案:

没有答案