获取Spark作业的app运行ID

时间:2014-04-30 02:00:15

标签: apache-spark

我希望从我运行Spark工作的地方获得该职位的唯一ID。

通过Spark主节点网站,我可以看到该ID。它类似于:

ID: app-20140429125304-0452

在创建正在运行的工作时,有没有办法解决这个问题?也许通过SparkContext?

4 个答案:

答案 0 :(得分:16)

是的,正如你所说:

sc.applicationId
res0: String = app-20150224184813-11531

(这是火花1.2)

请参阅

上的API文档

答案 1 :(得分:5)

对于那些使用pyspark的人,请看这个几乎相同的问题:How to extract application ID from the PySpark context

@vvladymyrov的回答让我在纱线客户端模式下运行pyspark。

>>> sc._jsc.sc().applicationId()
u'application_1433865536131_34483'

答案 2 :(得分:4)

在使用中引入了来自Spark 2.0+的spark: org.apache.spark.sql.SparkSession

scala> spark.sparkContext.applicationId
res1: String = app-20170228091742-0025

答案 3 :(得分:1)

这取决于您使用的语言。

<强> Scala的

https://spark.apache.org/docs/1.6.1/api/scala/index.html#org.apache.spark.SparkContext

sc.applicationId

<强>爪哇

https://spark.apache.org/docs/1.6.2/api/java/org/apache/spark/api/java/JavaSparkContext.html

sparkContext.sc().applicationId();

<强>的Python

http://spark.apache.org/docs/1.6.2/api/python/pyspark.html#pyspark.SparkContext

sc.applicationId

它也可以依赖于Spark版本。