我希望从我运行Spark工作的地方获得该职位的唯一ID。
通过Spark主节点网站,我可以看到该ID。它类似于:
ID: app-20140429125304-0452
在创建正在运行的工作时,有没有办法解决这个问题?也许通过SparkContext?
答案 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版本。