【发布时间】:2017-10-26 18:28:08
【问题描述】:
我想从我运行 Spark 作业的位置获取该作业的唯一 ID。
通过 Spark 主节点网站,我可以看到该 ID。是这样的:
ID: app-20140429125304-0452
在创建正在运行的作业时,有什么方法可以得到这个?也许通过 SparkContext?
【问题讨论】:
标签: apache-spark
我想从我运行 Spark 作业的位置获取该作业的唯一 ID。
通过 Spark 主节点网站,我可以看到该 ID。是这样的:
ID: app-20140429125304-0452
在创建正在运行的作业时,有什么方法可以得到这个?也许通过 SparkContext?
【问题讨论】:
标签: apache-spark
是的,正如你所说:
sc.applicationId
res0: String = app-20150224184813-11531
(这是火花 1.2)
在
上查看 API 文档【讨论】:
sc.applicationId
对于那些使用 pyspark 的人,请参阅这个几乎相同的问题:How to extract application ID from the PySpark context
@vvladymyrov 的回答对我在 yarn-client 模式下运行 pyspark 很有用。
>>> sc._jsc.sc().applicationId()
u'application_1433865536131_34483'
【讨论】:
在使用 Spark 2.0+ 时引入了spark: org.apache.spark.sql.SparkSession
scala> spark.sparkContext.applicationId
res1: String = app-20170228091742-0025
【讨论】:
这取决于您使用的语言。
斯卡拉
https://spark.apache.org/docs/1.6.1/api/scala/index.html#org.apache.spark.SparkContext
sc.applicationId
Java
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 版本。
【讨论】: