Apache spark Spark应用程序启动后如何更改其名称?
我无法更新/重新配置名为“Spark”的预定义Spark上下文 返回应用程序名“Databricks Shell”。我要更新此应用程序,并尝试使用:Apache spark Spark应用程序启动后如何更改其名称?,apache-spark,pyspark,Apache Spark,Pyspark,我无法更新/重新配置名为“Spark”的预定义Spark上下文 返回应用程序名“Databricks Shell”。我要更新此应用程序,并尝试使用: spark.conf.set('spark.app.name', 'New_Name') 但是,这不会更新任何内容,因为当我再次运行 spark.sparkContext._conf.get("spark.app.name") 我仍然得到“Databricks Shell”如何更新或更改spark上下文?您可以使用SparkConf或Spark
spark.conf.set('spark.app.name', 'New_Name')
但是,这不会更新任何内容,因为当我再次运行
spark.sparkContext._conf.get("spark.app.name")
我仍然得到“Databricks Shell”如何更新或更改spark上下文?您可以使用SparkConf或SparkSession builder修改配置和应用程序名称
from pyspark.sql import SparkSession
from pyspark import SparkConf, SparkContext
# with SparkConf()
conf = SparkConf().setAppName('TA').set("spark.driver.memory", "1g")
conf = SparkConf().setAppName('TA').set("spark.executor.memory", "12g")
spark = SparkSession.builder.config(conf=conf).getOrCreate()
#with SparkSession builder
spark = SparkSession.builder.appName("Python Spark").getOrCreate()
tl;drSpark应用程序启动并运行后,您无法更改其名称
现在已经太晚了,因为其他服务可能依赖该值并适当地初始化它们自己(例如web UI) 您可以预期这样的更改会传播到其他Spark服务,但事实并非如此 这就是为什么在启动Spark应用程序时定义应用程序名称和主URL。启动时设置这两个值是先决条件
请注意,
spark.sparkContext.\u conf.get(“spark.app.name”)
是一种黑客行为,您应该真正使用spark.sparkContext.appName
还请注意,用于配置的对象类型不同,它们实际上用于两个不同的模块—Spark Core(SparkContext
)和Spark SQL(SparkSession.conf
)
在Spark的最新版本中,\u 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")
^
谢谢你的回答,但是如果我在此之前为SparkSession“spark”定制了配置,它们会丢失吗?创建SparkSession实例没有限制,可以根据需要创建,可以是多个实例,具有各种配置选项在运行你发送的代码后,我仍然会得到:('spark.app.name','Databricks Shell')我不知道为什么。即使我将会话命名为spark2,它仍然被命名为Databricks Shell
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")
^
scala> :type spark.sparkContext.getConf
org.apache.spark.SparkConf
scala> :type spark.conf
org.apache.spark.sql.RuntimeConfig