我正在尝试运行一个简单的地图缩减操作TSV数据集,当我尝试简单的地图操作时,我对于出了什么问题感到有点困惑。以下是我对地图类sample Word Count problem的修改。
public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
private Text node = new Text();
public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {
String line = value.toString();
String tokens[] = line.split('t');
node.set(tokens[1]);
int weight = Integer.parseInt(tokens[2]);
output.collect(node, new Writable(weight));
}
}
可以将输入可视化为具有三列的TSV文件。我在上面的代码行中将上述代码拆分为令牌时出现错误method.java.lang.String.split being not applicable
。我可能会出错的任何想法?
答案 0 :(得分:1)
String tokens [] = line.split(&#39; t&#39;);
更改为
String tokens [] = line.split(&#39; \ t&#39;);
答案 1 :(得分:0)
String tokens[] = line.split('t');
应该是:
String tokens[] = line.split("\t");
使用单引号用于char类型并会引发异常。