查找当前运行的 SparkContext 的名称

J *_*ath 6 scala apache-spark

我发誓我以前做过这个,但我找不到代码或答案。我想获取当前运行的 SparkContext 的名称并将其读入变量或将其打印到屏幕上。类似的东西:

val myContext = SparkContext.getName
Run Code Online (Sandbox Code Playgroud)

例如,如果我在 spark-shell 中运行它,它将返回“sc”。有谁知道怎么得到吗?

Ste*_*ari 6

我不太确定我是否遵循...按名称,您是指应用程序的名称吗?如果是这样,您将调用appName. 在火花外壳,例如:sc.appName。

如果您要求获取保存上下文的变量的名称,那么我不确定您是否可以。sc只是用于访问 spark-shell 中的上下文的 val,但您可以在自己的应用程序中将其命名为任何您想要的名称。

[编辑] SparkContext 上
有一个getOrCreate方法可以返回现有的创建和注册的上下文。这会做你想要的吗?

https://spark.apache.org/docs/1.5.1/api/java/org/apache/spark/SparkContext.html#getOrCreate()

  • 我刚刚用可能对您有所帮助的内容更新了我的答案 - `SparkContext` 中的 `getOrCreate` 静态方法将返回先前创建和注册的上下文,或者为您提供一个新的上下文。我不认为你可以并行运行多个上下文实例,所以如果有一个,你应该得到它。 (2认同)