Почему я получаю ошибку ниже, когда пишу код в scala для запуска приложения spark? - PullRequest
0 голосов
/ 04 декабря 2018

Код:

import org.apache.spark.{SparkConf, SparkContext}


object simpleSpark extends App {

    val sparkConf = new SparkConf();
    sparkConf.setMaster("local")
    sparkConf.setAppName("First Application")

    val sc = new SparkContext(sparkConf)


    val file = sc.textFile("datasets/movieratings.txt")
    val ratings = file.map(x => x.toString().split("\t")(2))
    val result = ratings.countByValue()
}

Среда:

  • ОС: Windows
  • IDE: IntelliJ

Также не могли бы выдайте мне знать, это правильный способ указать путь к файлу в коде (после текстового файла)?

Ошибка: исключение в задаче 0.0 на этапе 0.0 (TID 0) java.lang.ArrayIndexOutOfBoundsException: 2

enter image description here

1 Ответ

0 голосов
/ 04 декабря 2018

Это говорит о том, что вы получаете индекс массива из-за ошибки границ.У вас нет номеров строк, но я подозреваю, что ошибочная строка -

val ratings = file.map(x => x.toString().split("\t")(2))

Вероятная причина ошибки в том, что у вас есть строка с одной или несколькими вкладками, разделенная на массив без индекса2, затем попытайтесь получить доступ к несуществующему элементу по индексу 2. Может быть полезно помнить, что массивы индексируются 0, поэтому индекс 2 фактически ссылается на третий элемент.Кроме того, если вы ожидаете не менее 3 элементов, и это не является ошибкой, то вам нужно выполнить очистку, чтобы убедиться, что вы не получаете никаких несоответствующих данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...