我刚接触Scala/Spark,正在加载一份2GB大小的csv文件。在我的虚拟机上,使用以下HEAP_SIZE可以正常运行。
HEAP_SIZE="-Xms8g -Xmx8g"
但是当在IntelliJ上运行相同的代码并加载相同的文件时,会抛出java.lang.StackOverflowError异常
。
我知道我没有正确设置IntelliJ上的内存选项。
请问有人可以告诉我在哪里以及如何设置,因为我在Windows机器上有足够的内存(32GB)?
通过追踪错误,可以确定错误确切来自下面的代码,显然是在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
java.lang.StackOverflowError
。 是的,我尝试使用“编辑配置”,通过提供相同的堆大小来使用VM选项。 - Leibnitz