gpt4 book ai didi

apache-spark - SparkContext.getOrCreate() 目的

转载 作者:行者123 更新时间:2023-12-01 04:44:36 27 4
gpt4 key购买 nike

getOrCreate 的目的是什么?来自 SparkContext 的方法类(class)?我不明白我们什么时候应该使用这种方法。

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

或者目的更简单,唯一的目的是当我创建一个spark应用程序时,我不想将spark上下文作为参数发送给一个方法,我会把它作为一个单例对象来获取?

最佳答案

If I have 2 spark applications that are run with spark-submit, and in the main method I instantiate the spark context with SparkContext.getOrCreate, both app will have the same context?



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

when I create a spark app, and I don't want to send the spark context as a parameter to a method, and I will get it as a singleton object?



这正是原因。 SparkContext (或 SparkSession )在 Spark 应用程序和核心 Spark 的源代码中无处不在,传递它们将是一个巨大的负担。

它对于任意线程可以初始化上下文的多线程应用程序也很有用。

关于 docs :

is function may be used to get or instantiate a SparkContext and register it as a singleton object. Because we can only have one active SparkContext per JVM, this is useful when applications may wish to share a SparkContext.



驱动程序在它自己的 JVM 中运行,并且没有内置机制在多个成熟的 Java 应用程序之间共享它(正确的应用程序执行它自己的 main。检查 Is there one JVM per Java application?Why have one JVM per application? 以了解相关的一般问题)。应用程序是指多个模块执行自己的代码的“逻辑应用程序”——一个例子是 SparkJobspark-jobserver .这种情况与通过 SparkContext 没有什么不同。到一个函数。

关于apache-spark - SparkContext.getOrCreate() 目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47813646/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com