Tri*_*DEY 5 singleton design-patterns scala apache-spark
我正在寻找一种确保我的应用仅使用一个单一Spark Context(sc)的好方法。在开发过程中,我经常遇到错误,必须重新启动Play!服务器重新测试我的修改。单例模式是否可以解决?
object sparckContextSingleton {
@transient private var instance: SparkContext = _
private val conf : SparkConf = new SparkConf()
.setMaster("local[2]")
.setAppName("myApp")
def getInstance(): SparkContext = {
if (instance == null){
instance = new SparkContext(conf)
}
instance
}
}
Run Code Online (Sandbox Code Playgroud)
这做得不好。我应该停止SparkContext吗?
这应该足以达到目的,重要的是使用 val 而不是 var。
object SparkContextKeeper {
val conf = new SparkConf().setAppName("SparkApp")
val context= new SparkContext(conf)
val sqlContext = new SQLContext(context)
}
Run Code Online (Sandbox Code Playgroud)