Ответ 1
да, точно так же, как вы сказали:
sc.applicationId
res0: String = app-20150224184813-11531
(Это искра 1.2)
См. API doc в
Мне бы хотелось, откуда я запустил работу Spark, чтобы получить уникальный идентификатор этой работы.
Через веб-сайт "Искра" node я могу видеть этот идентификатор. Это что-то вроде:
ID: app-20140429125304-0452
Есть ли способ получить это при создании работы? Может быть, через SparkContext?
да, точно так же, как вы сказали:
sc.applicationId
res0: String = app-20150224184813-11531
(Это искра 1.2)
См. API doc в
Для тех, кто использует pyspark, см. этот почти идентичный вопрос: Как извлечь идентификатор приложения из контекста PySpark
Ответ от @vlladymyrov работал у меня, запуская pyspark в режиме пряжи-клиента.
>>> sc._jsc.sc().applicationId()
u'application_1433865536131_34483'
С введением spark: org.apache.spark.sql.SparkSession
из Spark 2.0+ при использовании
scala> spark.sparkContext.applicationId
res1: String = app-20170228091742-0025
Это зависит от того, какой язык вы используете.
Scala
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.