package com.HadoopExpert;
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class SumMapper extends Mapper<LongWritable, Text,Text,IntWritable>{
public void map(LongWritable key, Text value, Context con) throws IOException, InterruptedException{
String s = value.toString();
String[] words = s.split(",");
String gender = words[4];
int sal = Integer.parseInt(words[2]);
con.write(new Text(gender), new IntWritable(sal));
}
}
这是我的mapper类代码我想通过索引获取数组m得到一个错误aarray out of bound index 提前谢谢
答案 0 :(得分:1)
根据您在评论中提到的数据,性别指数应为3
。请注意,数组的索引从java中的0
开始。
您应该在使用之前检查数据,例如:
if (words.length > 3) {
String gender = words[3];
......
}
你应该考虑如何处理坏数据(计算然后忽略它,或尝试修复它,等等)。