SparkSession getOrCreate()并行应用复用问题及shuffle分区配置疑问
SparkSession getOrCreate 行为答疑
问题1:应用2是否会复用应用1已创建的SparkSession?
不会。SparkSession是进程级别的上下文实例,每个独立运行的Spark应用对应一个独立的JVM进程,不同进程之间的SparkSession完全隔离、彼此无法访问。所以应用2启动时,会创建属于自己的全新SparkSession,不会复用应用1的实例。
问题2:若复用已有SparkSession,shuffle分区配置会如何变化?
当收到WARN SparkSession: Using an existing Spark session; only runtime SQL configurations will take effect警告时,说明当前是在同一个进程内复用了已有的SparkSession:
spark.sql.shuffle.partitions属于运行时可动态修改的SQL配置,所以新设置的30会生效,覆盖原有值20。- 只有那些启动时确定的核心配置(比如
appName、spark.master)才会被忽略,不会覆盖已有SparkSession的对应配置。
内容的提问来源于stack exchange,提问作者Matthew
相关产品推荐
相关产品推荐

