我做了一个 MapReduce 程序,它在 reduce 端连接两个表。我在小文件上尝试过它并且它有效。但是,当我尝试在大文件(80GB 和 60GB)上执行我的程序时,它会在以下行出现 IndexOutOfBoundsException 失败: if (!(fields[8]).equals("")){ 和 parse(record.toString());
private String BAN;
public void parse(String record) {
String[] fields = record.split("\\|");
if (fields.length > 100) {
if (!(fields[0]).equals("")){
BAN = fields[0];
}
}
else if(fields.length<40 && fields.length>0){
if (!(fields[8]).equals("")){
System.err.println("element = "+fields[8]);
}
}
}
public void parse(Text record) {
parse(record.toString());
}
public String getStationId(){
return "BAN = "+BAN;
}
我知道这个异常意味着数组中没有第 9 个元素,但我不明白为什么......而且调试这样的程序非常困难
请帮帮我!