Из Spark Source вы можете увидеть:
/**
* A unique identifier for the Spark application.
* Its format depends on the scheduler implementation.
* (i.e.
* in case of local spark app something like 'local-1433865536131'
* in case of YARN something like 'application_1433865536131_34483'
* in case of MESOS something like 'driver-20170926223339-0001'
* )
*/
И когда вы предоставите мастер как local
, он будет использовать LocalSchedulerBackend
, который инициализирует идентификатор приложения как:
private val appId = "local-" + System.currentTimeMillis
И когда вы запустите кластер, он примет spark.app.id
и будет использовать его, класс StandaloneSchedulerBackend
, и есть логика, чтобы получить его из этого свойства.
Надеюсь, это поможет вам.