Jianfei Wang created SPARK-17552:
------------------------------------
Summary: Doubt about the double Synchronized in Object
SparkSession.getOrCreate()
Key: SPARK-17552
URL: https://issues.apache.org/jira/browse/SPARK-17552
Project: Spark
Issue Type: Question
Components: Spark Core, SQL
Affects Versions: 2.0.0
Reporter: Jianfei Wang
Priority: Trivial
Because the getOrCreate() is a method of object SparkSession, only one thread
can get into the first synchronized block at the same time, so I think the
second synchronzied is unnecessary, of course maybe there are some other
reasons, please discuss here,thank you!
{code}
def getOrCreate(): SparkSession = synchronized {
// Get the session from current thread's active session.
var session = activeThreadSession.get()
if ((session ne null) && !session.sparkContext.isStopped) {
options.foreach { case (k, v) => session.conf.set(k, v) }
if (options.nonEmpty) {
logWarning("Use an existing SparkSession, some configuration may not
take effect.")
}
return session
}
// Global synchronization so we will only set the default session once.
SparkSession.synchronized {
// some code here
}
return session
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]