我尝试使用RuntimeConfig对象(SparkSession.conf)了解在创建SparkSession之后可以修改Spark的哪些属性。
根据以下文章,可以修改执行程序核心的数量,例如:
https://databricks.com/blog/2016/08/15/how-to-use-sparksession-in-apache-spark-2-0.html
然而,文章中的相同示例对我来说并不起作用 - 设置" spark.executor.memory"在创建会话之前在SparkConf中,然后在创建会话对象之后覆盖它,没有任何效果 - 在SparkConf中使用的值是生效的值(我也尝试使用spark.cores.max来达到相同的效果) ):
val conf = new SparkConf().setAppName("bla").set("spark.cores.max","1")
val spark = SparkSession.builder().config(conf).getOrCreate()
spark.conf.set("spark.cores.max","10") <---- this is ignored!
在创建会话后,是否有人能够修改各种Spark运行时配置?
P.S。我所看到的当前行为正是我想要发生的事情(我不希望任何人在创建之后更改SparkSession配置),但我想确保它是由设计。