我有下面的地图
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);
}样本输入: abc :在一个充斥着高科技IPO的市场上,这个不同。应该将keyValue对存储为(abc,在一个充斥着高科技IPO的市场,这是不同的)。
现在这个商店(abc,abc)。,我哪里错了?
发布于 2014-04-28 01:32:38
我怀疑您正在看到的是第一个collect()调用的结果,在这个调用中,键和值都是从令牌0设置的。
https://stackoverflow.com/questions/23330353
复制相似问题