我按照这篇文章编写了一些在本地运行的 Spark 测试:http://mkuthan.github.io/blog/2015/03/01/spark-unit-testing/
主要代码如下:
class SparkExampleSpec extends FlatSpec with BeforeAndAfter {
private val master = "local[2]"
private val appName = "example-spark"
private var sc: SparkContext = _
before {
val conf = new SparkConf()
.setMaster(master)
.setAppName(appName)
sc = new SparkContext(conf)
}
after {
if (sc != null) {
sc.stop()
}
}
(...)
但是我发现当我的测试增加的时候,会报OutOfMemoryError
并且进程被阻塞。
如何解决?
PS:有些测试会生成一些 RDD,但不会收集
它们,例如:
val rdd = sparkContext.makeRDD(someData)
// not calling `rdd.collect()`
这可能是个问题吗?
最佳答案
我不能准确回答,因为我不知道你的spark配置
但是,我认为内存设置可能是。
检查您的驱动程序(或执行程序)内存配置
$SPARK_PATH/conf/spark-default.conf
spark.driver.memory
spark.executor.memory
您将能够从此页面获得帮助。
关于scala - Spark本地测试报OutOfMemoryError,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32176465/