mapreduce程序

myzjeezk  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(348)

我有下面的Map

private Text sentiment = new Text();

public void map(LongWritable key, Text value, OutputCollector<Text, Text> output, Reporter reporter)
        throws IOException {

    String allPages = value.toString();
    String[] tokens = allPages.split(":::");

    for(int i=0;i<(tokens.length-1);i++)
    {
        String articleID="";
        sentiment.set(tokens[i].trim());
        articleID = tokens[0].trim();
        System.out.println("articleID "+articleID);
        Text articleIDValue = new Text(articleID); 
        output.collect(sentiment,articleIDValue);
    }
    String line = "";
    for(int j=1;j<tokens.length;j++){
        line = line + " "+tokens[j];
        System.out.println("line.... "+line);
    }
    Text lineText = new Text(line.trim());
    output.collect(new Text(tokens[0]),lineText);

}

示例输入:::在一个充斥着科技ipo的市场中,这一次是不同的。应该将keyvalue对存储为(,在一个充斥着科技ipo的市场中,这个是不同的。)
现在这个存储为(,)。。我哪里出错了?

j13ufse2

j13ufse21#

我怀疑您看到的是第一个collect()调用的结果,其中键和值都是从标记[0](“”)设置的。

相关问题