SparkContext.getOrCreate() purpose



SparkContext类中getOrCreate方法的目的是什么?我不明白何时应该使用此方法。

如果我有2个使用spark-submit运行的SPARK应用程序,并且在主要方法中,我用SparkContext.getOrCreate实例化了Spark上下文,则两个应用程序都具有相同的上下文?

或目的更简单,唯一的目的是当我创建一个Spark应用程序时,我不想将Spark上下文作为参数发送到方法,而我会将其作为单身对象?<</p>

如果我有2个使用Spark-Submit运行的Spark应用程序,并且在主要方法中,我使用SparkContext.GetorCreate实例化了Spark上下文,则两个应用程序都具有相同的上下文?

不,SparkContext是本地对象。它在应用程序之间没有共享。

当我创建一个Spark应用程序时,我不想将Spark上下文作为参数发送到方法,而我会将其作为单身对象?

这正是原因。SparkContext(或SparkSession)在Spark应用程序和Core Spark的来源中无处不在,并且将它们传递到巨大的负担。

它对于任意线程可能使上下文捕捉的多线程应用程序也很有用。

关于文档:

IS函数可用于获取或实例化SparkContext并将其注册为单例对象。因为我们每JVM只能有一个活动SparkContext,所以当应用程序可能希望共享SparkContext时,这很有用。

驱动程序以自己的JVM运行,并且没有内置机制可以在多个成熟的Java应用程序之间共享(正确执行其自己的main。适用于相关的一般问题)。应用程序是指"逻辑应用程序",其中多个模块执行其自己的代码 - 一个示例是spark-jobserver上的SparkJob。这种情况与将SparkContext传递给函数没有什么不同。

相关内容

  • 没有找到相关文章

最新更新