Ich bekomme neben String temp = word[5];
in meinem Mapper.ArrayIndexOutofBoundsException mit Hadoop MapReduce
Ich habe das recherchiert und ich weiß, was der Fehler herkommt (wenn die Eingangsdaten leer ist oder die Länge kleiner oder größer als der Index in dem Code angegeben. Meine Daten hat einige leere Werte Zelle)
Ich habe versucht, den Array-Index Fehler mit dem folgenden Code zu fangen, aber es gibt mir immer noch einen Fehler.
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));
}
}
}
Wenn Sie irgendwelche Hinweise oder Tipps geben Sie mir bitte könnte, ob der Fehler in diesem Code ist oder sollte ich woanders suchen, die eine Menge Stress ersparen!