对于Scala,我们可以使用SparkContext.applicationId
但是我无法使用Spark的Java API找到任何方法来做同样的事情。
使用SparkConf.getAppId()
会导致NoSuchElementException:spark.app.id
是否可以使用其他唯一ID?
我的用例:我希望Spark作业在上一个作业的输出已经存在的情况下不会失败,并且希望避免删除先前作业的输出并避免使用随机UUID
答案 0 :(得分:4)
您可以使用SparkContext.applicationId
:
JavaSparkContext jsc = ...;
jsc.sc.applicationId;
答案 1 :(得分:0)
Java代码
System.out.println("appid = " + spark.sparkContext().applicationId());
结果
appid = app-20171023065927-0026