java.lang.StackOverflowError на IntelliJ - PullRequest
1 голос
/ 16 марта 2019

Я новичок в scala / spark и загрузке файла (csv) размером 2 ГБ, и он отлично работает на моей виртуальной машине со значением ниже HEAP_SIZE.

HEAP_SIZE="-Xms8g -Xmx8g"

Но при запуске одного и того же кода и загрузке одного и того же файла в IntelliJ выдается java.lang.StackOverflowError exception. Знайте, я неправильно устанавливаю параметры памяти на IntelliJ. Может кто-нибудь помочь мне, как и где именно мне нужно установить это, так как у меня достаточно памяти на моем компьютере с Windows (32 ГБ)?

Отслеживая ошибку, она точно приходит из приведенного ниже кода и, очевидно, имеет значение collect.

val lst: Array[String] = expRDD.map((c: tmpClass) => (c.objType, 0))
  .reduceByKey((x: Int, y: Int) => 0)
  .map({ (t: Tuple2[String, Int]) => t._1 })
  .collect

1 Ответ

1 голос
/ 16 марта 2019

Увеличение размера стека может помочь.Вы можете указать -Xss4m в поле VM Options соответствующей конфигурации Run / Debug.Это установит размер стека в 4M (размер стека по умолчанию зависит от ОС и версии JVM и обычно меньше 1M).Обратите внимание, что это не поможет, если ваша проблема вызвана бесконечной рекурсией.

...