public static class MyMap extends Mapper<Object, Text, Text, IntWritable> { public void map(Object key, Text value, Context context) throws IOException, InterruptedException { //按行读入的数据 String line=value.toString(); String arr[]=line.split(",");//\t // context.write(new IntWritable(Integer.parseInt(arr[1],arr[2])), // new Text(arr[0],arr[2])); context.write(new Text(arr[1],arr[2]),//第五列,取4,不截取具体的不用substring new IntWritable(1)); } }
时间: 2024-02-14 18:19:29 浏览: 77
这是一个 MapReduce 的 Mapper 类实现。该类继承了 Hadoop 的 Mapper 类,重写了其中的 map 方法,用于指定 MapReduce 任务的 Map 阶段的逻辑。
该 Mapper 类中的 map 方法接收三个参数:
- Object key:输入数据的键,对于文本文件而言,键通常是文件中的偏移量。
- Text value:输入数据的值,对于文本文件而言,值通常是文件中的一行文本。
- Context context:上下文对象,用于 Mapper 的输出和其他配置。
在 map 方法中,首先将输入数据的值转换为字符串,然后使用逗号作为分隔符将其拆分为一个字符串数组。接着,将数组中的第二个和第三个元素作为 Map 的键,将值设置为 1,表示出现过一次。最后,将键值对通过 context 对象输出。
需要注意的是,该 Mapper 类的输出键为 Text 类型,值为 IntWritable 类型。
阅读全文