Skip to content

Commit

Permalink
[SPARK-23808][SQL] Set default Spark session in test-only spark sessi…
Browse files Browse the repository at this point in the history
…ons.

Set default Spark session in the TestSparkSession and TestHiveSparkSession constructors.

new unit tests

Author: Jose Torres <[email protected]>

Closes apache#20926 from jose-torres/test3.

(cherry picked from commit b348901)
Signed-off-by: gatorsmile <[email protected]>

Change-Id: I01d1880071ea682ff03ce4f5825cdc51f4433f0d
  • Loading branch information
jose-torres authored and dongjoon-hyun committed Apr 1, 2018
1 parent 8684534 commit b6d7fde
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 0 deletions.
1 change: 1 addition & 0 deletions HDP-CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ BUG FIXES
SPARK-23645 Add docs RE `pandas_udf` with keyword args
SPARK-23599 Use RandomUUIDGenerator in Uuid expression
SPARK-23806 Broadcast.unpersist can cause fatal exception when used with dynamic allocation
SPARK-23808 Set default Spark session in test-only spark sessions.

(Backport from 2.4)
SPARK-23228 Add Python Created jsparkSession to JVM's defaultSession
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ private[spark] class TestSparkSession(sc: SparkContext) extends SparkSession(sc)
this(new SparkConf)
}

SparkSession.setDefaultSession(this)

@transient
override lazy val sessionState: SessionState = {
new TestSQLSessionStateBuilder(this, None).build()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* 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.test

import org.apache.spark.SparkFunSuite
import org.apache.spark.sql.SparkSession

class TestSparkSessionSuite extends SparkFunSuite {
test("default session is set in constructor") {
val session = new TestSparkSession()
assert(SparkSession.getDefaultSession.contains(session))
session.stop()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,10 @@ private[hive] class TestHiveSparkSession(
private val loadTestTables: Boolean)
extends SparkSession(sc) with Logging { self =>

// TODO(SPARK-23826): TestHiveSparkSession should set default session the same way as
// TestSparkSession, but doing this the same way breaks many tests in the package. We need
// to investigate and find a different strategy.

def this(sc: SparkContext, loadTestTables: Boolean) {
this(
sc,
Expand Down

0 comments on commit b6d7fde

Please sign in to comment.