You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Kent Yao (Jira)" <ji...@apache.org> on 2020/10/14 11:49:00 UTC
[jira] [Created] (SPARK-33148) SQLConf inconsistency between
SharedState and SessionState
Kent Yao created SPARK-33148:
--------------------------------
Summary: SQLConf inconsistency between SharedState and SessionState
Key: SPARK-33148
URL: https://issues.apache.org/jira/browse/SPARK-33148
Project: Spark
Issue Type: Bug
Components: SQL
Affects Versions: 3.0.1, 3.1.0
Reporter: Kent Yao
{code:java}
package com.netease.mammut.spark.training.sql
import java.lang.reflect.Field
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
object StaticConfigTest extends App {
println(org.apache.spark.SPARK_VERSION)
private val wh = "spark.sql.warehouse.dir"
private val td = "spark.sql.globalTempDatabase"
System.setProperty(wh, "./data1")
val conf = new SparkConf()
println(s"=====> SparkConf: $wh=${conf.get(wh)}")
conf.set(wh, "./data2")
private val spark: SparkSession =
SparkSession.builder()
.config(conf)
.enableHiveSupport()
.config(wh, "./data3")
.config(td, "bob")
.getOrCreate()
val confField: Field = spark.sharedState.getClass.getDeclaredField("conf")
confField.setAccessible(true)
private val shared: SparkConf = confField.get(spark.sharedState).asInstanceOf[SparkConf]
println()
println(s"=====> SparkSession SharedState: $wh=${shared.get(wh)}")
println(s"=====> SparkSession SharedState: $td=${shared.get(td)}")
spark.sql(s"set $wh").show()
println(s"=====> SparkSession 1 SessionState: $wh=${spark.conf.get(wh)}")
println(s"=====> SparkSession 1 SessionState: $td=${spark.conf.get(td)}")
SparkSession.clearActiveSession()
SparkSession.clearDefaultSession()
val spark2: SparkSession =
SparkSession.builder()
.config(conf)
.enableHiveSupport()
.config(wh, "./data4")
.config(td, "alice")
.getOrCreate()
spark2.sql(s"set $wh").show()
println(s"=====> SparkSession 2 SessionState: $wh=${spark2.conf.get(wh)}")
println(s"=====> SparkSession 2 SessionState: $td=${spark2.conf.get(td)}")
}
//bin/spark-submit --class com.netease.mammut.spark.training.sql.StaticConfigTest /Users/kentyao/sugar/target/mammut-spark-training-1.0-SNAPSHOT.jar
//3.0.0
//=====> SparkConf: spark.sql.warehouse.dir=./data1
//
//=====> SparkSession SharedState: spark.sql.warehouse.dir=./data3
//=====> SparkSession SharedState: spark.sql.globalTempDatabase=bob
//+--------------------+-------+
//| key| value|
//+--------------------+-------+
//|spark.sql.warehou...|./data3|
//+--------------------+-------+
//
//=====> SparkSession 1 SessionState: spark.sql.warehouse.dir=./data3
//=====> SparkSession 1 SessionState: spark.sql.globalTempDatabase=bob
//+--------------------+-------+
//| key| value|
//+--------------------+-------+
//|spark.sql.warehou...|./data4|
//+--------------------+-------+
// Ooppps~
//=====> SparkSession 2 SessionState: spark.sql.warehouse.dir=./data4
//=====> SparkSession 2 SessionState: spark.sql.globalTempDatabase=alice
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org