获取Spark作业的app运行ID

Gre*_*reg 16 apache-spark

我想,从我运行Spark工作的地方,获得该工作的唯一ID.

通过Spark主节点网站,我可以看到该ID.它是这样的:

ID: app-20140429125304-0452
Run Code Online (Sandbox Code Playgroud)

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

Yan*_* K. 17

是的,正如你所说:

sc.applicationId
res0: String = app-20150224184813-11531
Run Code Online (Sandbox Code Playgroud)

(这是火花1.2)

请参阅API文档


dnl*_*rky 5

对于那些使用pyspark的人,请参阅这个几乎相同的问题:如何从PySpark上下文中提取应用程序ID

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

>>> sc._jsc.sc().applicationId()
u'application_1433865536131_34483'
Run Code Online (Sandbox Code Playgroud)


Boe*_*ern 5

spark: org.apache.spark.sql.SparkSession从Spark 2.0+开始使用介绍

scala> spark.sparkContext.applicationId
res1: String = app-20170228091742-0025
Run Code Online (Sandbox Code Playgroud)