Я получаю ArrayIndexOutofBoundsException
рядом с String temp = word[5];
в моем картографе.ArrayIndexOutofBoundsException с Hadoop MapReduce
Я исследовал это, и я знаю, что ошибка происходит из (когда входные данные пуст или длина меньше или больше показателя, указанного в коде. Мои данные имеет несколько пустых значений ячеек)
Я попытался поймать ошибку индекса массива, используя следующий код, но он все еще дает мне ошибку.
import java.io.IOException;
import java.util.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapred.*;
public class AvgMaxTempMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, DoubleWritable> {
public void map(LongWritable key, Text value, OutputCollector<Text, DoubleWritable> output, Reporter reporter) throws IOException {
String line = value.toString();
if(line != null && !line.isEmpty() && str.matches(".*\\d+.*"));
String [] word = line.split(",");
String month = word[3];
String temp = word[5];
if (temp.length() > 1 && temp.length() < 5){
Double avgtemp = Double.parseDouble(temp);
output.collect(new Text(month), new DoubleWritable(avgtemp));
}
}
}
Если бы вы, пожалуйста, дайте мне какие-либо советы или советы для того, является ли ошибка в этом коде или я должен искать где-то еще, что бы сэкономить много стресса!