8
我知道我可以使用SparkConf.set('spark.app.name',...)
设置appName
之前创建SparkContext
。我可以随时更改SparkContext.appName吗?
但是,我想要改变应用程序的名称,即在创建了SparkContext
之后。
唉,设置sc.appName
不会改变yarn application -list
显示的工作方式。
有没有办法?
我知道我可以使用SparkConf.set('spark.app.name',...)
设置appName
之前创建SparkContext
。我可以随时更改SparkContext.appName吗?
但是,我想要改变应用程序的名称,即在创建了SparkContext
之后。
唉,设置sc.appName
不会改变yarn application -list
显示的工作方式。
有没有办法?
这是不可能的:任何更新到sparkConf
,包括spark.app.name
,SparkConf的实例之前只考虑用于实例化一个SparkContext:
注意,一旦SparkConf对象传递给Spark,它被克隆,不能再被用户修改。 Spark不支持在运行时修改配置。
https://spark.apache.org/docs/1.3.1/api/scala/index.html#org.apache.spark.SparkConf
注意,我不是问改变'SparkConf'而是直接修改'SparkContext.appName'。 – sds
我不认为这是可行的,'sc.appName'被实现为'val appName = conf.get(“spark.app.name”)',这当然不能被分配,并且通过'sc进行任何修改。因为getConf是'def getConf:SparkConf = conf.clone()',所以getconf.setXYZ'也不起作用。 一旦创建了上下文,配置就被认为是不可变的,并将其传递给所有相关方。 – Svend