Hadoop Map Reduce中的TSV输入

时间:2014-11-03 17:31:29

标签: hadoop mapreduce

我正在尝试运行一个简单的地图缩减操作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。我可能会出错的任何想法?

2 个答案:

答案 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类型并会引发异常。