tl; dr Вы не можете изменить имя приложения Spark после его запуска и запуска.
Просто слишком поздно, так как другие службы могут полагаться на значение иинициализируйте себя соответствующим образом (например, веб-интерфейс).
Можно ожидать, что такое изменение будет распространено на другие службы Spark, но это не так.
Именно поэтому вы определяете имя приложения иглавный URL при запуске приложения Spark.Обязательным условием является установка двух значений при запуске.
Обратите внимание, что spark.sparkContext._conf.get("spark.app.name")
- это хак, и вам действительно следует использовать spark.sparkContext.appName
.
Обратите также вниманиечто типы объектов, с которыми вы работаете для конфигурирования, различны, и они действительно предназначены для двух разных модулей - Spark Core (SparkContext
) и Spark SQL (SparkSession.conf
).
И в последних версияхSpark, _conf
больше не доступен.
scala> spark.version
res2: String = 2.4.4
scala> spark.sparkContext._conf.get("spark.app.name")
<console>:24: error: variable _conf in class SparkContext cannot be accessed in org.apache.spark.SparkContext
spark.sparkContext._conf.get("spark.app.name")
^
Вы должны вместо этого использовать spark.sparkContext.getConf
.
Снова два объекта конфигурации различаются.
scala> :type spark.sparkContext.getConf
org.apache.spark.SparkConf
scala> :type spark.conf
org.apache.spark.sql.RuntimeConfig