Я сопоставляю данные, взятые из текстового файла. Текстовый файл должен иметь 5 столбцов. напримерКак преодолеть java.lang.ArrayIndexOutOfBoundsException error
29000000 1 0 2013 1 single-sex
29000000 1 0 2013 1 education
29000000 1 0 2013 1 and
29000000 1 0 2013 1 the
29000000 1 0 2013 1 brain
В моем процессе мне нужны только те значения, которые появляются в 0-м и 5-м столбцах. Таким образом, чтобы получить те, которые я написал следующее:
val emp =
sc.textFile("\\.txt")
.map{line => val s = line.split("\t"); (s(5),s(0))}
Однако, вполне возможно, что иногда пятая колонна не существует для некоторых строк, и я получаю
15/10/12 17:19:33 INFO TaskSetManager: Затерянный задача 27,0 на стадии 0.0 (TID 27) на локальном хосте исполнителя: java.lang.ArrayIndexOutOfBoundsException (5)
Так что на моем картографировании, как я должен написать, если условие, если s (5) существует или нет ?
Что требует бизнес-логика вашего приложения в таком случае? Я имею в виду, следует ли игнорировать эти записи или вести себя по-другому? – mgaido
Вы, кажется, знаете, что массив основан на нуле, а так как их пять элементов, это означает, что индексы «0, 1, 2, 3, 4». 5 означает шестой ряд. – AlphaModder
В моем посте есть 6 полей. Бериллий хорошо работает. –