微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – 确保应用程序中只有一个Spark上下文的良好实践

我正在寻找一种好方法来确保我的应用程序只使用一个单独的Spark Context(sc).在开发过程中,我经常遇到错误,不得不重启我的游戏!服务器重新测试我的修改.
Singleton模式会成为解决方案吗?

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
  }  
}

这不是一件好事.我应该停止SparkContext吗?

解决方法

这应该足以做到这一点,重要的是使用val而不是var.

object SparkContextKeeper {
  val conf = new SparkConf().setAppName("SparkApp")
  val context= new SparkContext(conf)
  val sqlContext = new sqlContext(context)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐