XIN*_*XIN 4 apache-spark pyspark
我尝试使用两种方式来设置spark.dynamicAllocation.minExecutors,但似乎只有第一种方式有效
spark2 = SparkSession \
.builder \
.appName("test") \
.config("spark.dynamicAllocation.minExecutors", 15) \
.getOrCreate()
Run Code Online (Sandbox Code Playgroud)
对比
spark2.conf.set("spark.dynamicAllocation.minExecutors", 15)
Run Code Online (Sandbox Code Playgroud)
与其说是方法之间的差异,不如说是执行这些方法的上下文的差异。
pyspark.sql.session.SparkSession.Builder选项可以在 Spark 应用程序启动之前执行。这意味着,如果没有SparkSession要检索的活动,仍然可以设置一些特定于集群的选项。
如果会话已经初始化,设置新的配置选项可能不起作用。例如,参见Spark 2.0: Redefining SparkSession params through GetOrCreate and NOT see changes in WebUI
pyspark.sql.conf.RuntimeConfig只能从退出会话中检索,因此set一旦集群运行,就会调用其方法。此时,大多数特定于集群的选项被冻结且无法修改。
一般RuntimeConfig.set用于修改spark.sql.*配置参数,通常可以在运行时更改。
请注意,根据部署模式,某些选项(尤其是spark.*.extraJavaOptions)无法使用任何这些方法设置,只能通过spark-submit参数或使用配置文件进行修改。
小智 0
一些配置属性需要在 SparkSession 启动之前设置才能工作。Sparksession 在初始化时使用它们。如果您在创建sparksession之后设置spark.dynamicAllocation.minExecutors,sparConf对象中该属性的值仍然会发生变化,您可以通过打印该属性来验证这一点,但它不会影响sparksession会话,因为它采用了该值在初始化时存在。
| 归档时间: |
|
| 查看次数: |
2299 次 |
| 最近记录: |