diff options
author | Andrew Or <andrew@databricks.com> | 2016-04-17 17:35:41 -0700 |
---|---|---|
committer | Andrew Or <andrew@databricks.com> | 2016-04-17 17:35:41 -0700 |
commit | 7de06a646dff7ede520d2e982ac0996d8c184650 (patch) | |
tree | 119dd5028ba5c35fb2415fc26529c8dfe469f43c /sql/core/src | |
parent | 699a4dfd89dc598e79955cfd6f66c06b6bf74be6 (diff) | |
download | spark-7de06a646dff7ede520d2e982ac0996d8c184650.tar.gz spark-7de06a646dff7ede520d2e982ac0996d8c184650.tar.bz2 spark-7de06a646dff7ede520d2e982ac0996d8c184650.zip |
Revert "[SPARK-14647][SQL] Group SQLContext/HiveContext state into SharedState"
This reverts commit 5cefecc95a5b8418713516802c416cfde5a94a2d.
Diffstat (limited to 'sql/core/src')
3 files changed, 19 insertions, 61 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala b/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala index 781d699819..9259ff4062 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala @@ -41,7 +41,7 @@ import org.apache.spark.sql.execution._ import org.apache.spark.sql.execution.command.ShowTablesCommand import org.apache.spark.sql.execution.datasources._ import org.apache.spark.sql.execution.ui.{SQLListener, SQLTab} -import org.apache.spark.sql.internal.{SessionState, SharedState, SQLConf} +import org.apache.spark.sql.internal.{SessionState, SQLConf} import org.apache.spark.sql.sources.BaseRelation import org.apache.spark.sql.types._ import org.apache.spark.sql.util.ExecutionListenerManager @@ -63,14 +63,17 @@ import org.apache.spark.util.Utils * @since 1.0.0 */ class SQLContext private[sql]( - @transient protected[sql] val sharedState: SharedState, - val isRootContext: Boolean) + @transient val sparkContext: SparkContext, + @transient protected[sql] val cacheManager: CacheManager, + @transient private[sql] val listener: SQLListener, + val isRootContext: Boolean, + @transient private[sql] val externalCatalog: ExternalCatalog) extends Logging with Serializable { self => def this(sc: SparkContext) = { - this(new SharedState(sc), true) + this(sc, new CacheManager, SQLContext.createListenerAndUI(sc), true, new InMemoryCatalog) } def this(sparkContext: JavaSparkContext) = this(sparkContext.sc) @@ -97,20 +100,20 @@ class SQLContext private[sql]( } } - def sparkContext: SparkContext = sharedState.sparkContext - - protected[sql] def cacheManager: CacheManager = sharedState.cacheManager - protected[sql] def listener: SQLListener = sharedState.listener - protected[sql] def externalCatalog: ExternalCatalog = sharedState.externalCatalog - /** - * Returns a [[SQLContext]] as new session, with separated SQL configurations, temporary - * tables, registered functions, but sharing the same [[SparkContext]], cached data and - * other things. + * Returns a SQLContext as new session, with separated SQL configurations, temporary tables, + * registered functions, but sharing the same SparkContext, CacheManager, SQLListener and SQLTab. * * @since 1.6.0 */ - def newSession(): SQLContext = new SQLContext(sharedState, isRootContext = false) + def newSession(): SQLContext = { + new SQLContext( + sparkContext = sparkContext, + cacheManager = cacheManager, + listener = listener, + isRootContext = false, + externalCatalog = externalCatalog) + } /** * Per-session state, e.g. configuration, functions, temporary tables etc. diff --git a/sql/core/src/main/scala/org/apache/spark/sql/internal/SessionState.scala b/sql/core/src/main/scala/org/apache/spark/sql/internal/SessionState.scala index d404a7c0ae..c30f879ded 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/internal/SessionState.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/internal/SessionState.scala @@ -22,8 +22,10 @@ import org.apache.spark.sql.catalyst.analysis.{Analyzer, FunctionRegistry} import org.apache.spark.sql.catalyst.catalog.SessionCatalog import org.apache.spark.sql.catalyst.optimizer.Optimizer import org.apache.spark.sql.catalyst.parser.ParserInterface +import org.apache.spark.sql.catalyst.rules.RuleExecutor import org.apache.spark.sql.execution._ import org.apache.spark.sql.execution.datasources.{DataSourceAnalysis, PreInsertCastAndRename, ResolveDataSource} +import org.apache.spark.sql.execution.exchange.{EnsureRequirements, ReuseExchange} import org.apache.spark.sql.util.ExecutionListenerManager /** diff --git a/sql/core/src/main/scala/org/apache/spark/sql/internal/SharedState.scala b/sql/core/src/main/scala/org/apache/spark/sql/internal/SharedState.scala deleted file mode 100644 index 9a30c7de1f..0000000000 --- a/sql/core/src/main/scala/org/apache/spark/sql/internal/SharedState.scala +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.spark.sql.internal - -import org.apache.spark.SparkContext -import org.apache.spark.sql.SQLContext -import org.apache.spark.sql.catalyst.catalog.{ExternalCatalog, InMemoryCatalog} -import org.apache.spark.sql.execution.CacheManager -import org.apache.spark.sql.execution.ui.SQLListener - - -/** - * A class that holds all state shared across sessions in a given [[SQLContext]]. - */ -private[sql] class SharedState(val sparkContext: SparkContext) { - - /** - * Class for caching query results reused in future executions. - */ - val cacheManager: CacheManager = new CacheManager - - /** - * A listener for SQL-specific [[org.apache.spark.scheduler.SparkListenerEvent]]s. - */ - val listener: SQLListener = SQLContext.createListenerAndUI(sparkContext) - - /** - * A catalog that interacts with external systems. - */ - lazy val externalCatalog: ExternalCatalog = new InMemoryCatalog - -} |