【发布时间】:2017-08-13 14:22:22
【问题描述】:
我有一个 Spark 应用程序,它使用带有 SparkSession 的 Spark 2.0 新 API。
我正在使用SparkContext 的另一个应用程序之上构建此应用程序。我想将SparkContext 传递给我的应用程序并使用现有的SparkContext 初始化SparkSession。
但是我找不到如何做到这一点的方法。我发现带有SparkContext 的SparkSession 构造函数是私有的,因此我无法以这种方式对其进行初始化,并且构建器不提供任何setSparkContext 方法。您认为存在一些解决方法吗?
【问题讨论】:
-
我不太确定,但据我所知,没有解决方法
-
是的 :( 所以如果没有解决方法,还有两个选项:在我的应用程序中使用 SparkContext 或添加对 sparkSession 的支持到我在顶部构建的应用程序(它是 spark-jobserver,我是使用他们的分支 spark-2.0-preview 但他们仍然使用 sparkContext)
-
您只需要在应用程序中添加对外部 SparkContext 的支持并访问 session.sparkContext。应该不是什么大问题。
-
你能解释一下“添加对外部 SparkContext 的支持”的意思吗?我读到你应该只使用 sparkcontext 的一个实例
-
我想应用程序会创建自己的 SparkContext。由于您只需要一个 SparkContext(有充分的理由),因此您需要向应用程序的构造函数或生成器添加一个参数,以接受您已经使用会话生成器创建的外部 SparkContext。
标签: scala apache-spark apache-spark-2.0