aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorzsxwing <zsxwing@gmail.com>2015-08-06 22:52:23 -0700
committerReynold Xin <rxin@databricks.com>2015-08-06 22:52:23 -0700
commit7aaed1b114751a24835204b8c588533d5c5ffaf0 (patch)
tree36034dec03ecab2469dd3100a35be25f64325195 /sql
parentf0cda587fb80bf2f1ba53d35dc9dc87bf72ee338 (diff)
downloadspark-7aaed1b114751a24835204b8c588533d5c5ffaf0.tar.gz
spark-7aaed1b114751a24835204b8c588533d5c5ffaf0.tar.bz2
spark-7aaed1b114751a24835204b8c588533d5c5ffaf0.zip
[SPARK-8862][SQL]Support multiple SQLContexts in Web UI
This is a follow-up PR to solve the UI issue when there are multiple SQLContexts. Each SQLContext has a separate tab and contains queries which are executed by this SQLContext. <img width="1366" alt="multiple sqlcontexts" src="https://cloud.githubusercontent.com/assets/1000778/9088391/54584434-3bc2-11e5-9caf-94c2b0da528e.png"> Author: zsxwing <zsxwing@gmail.com> Closes #7962 from zsxwing/multi-sqlcontext-ui and squashes the following commits: cf661e1 [zsxwing] sql -> SQL 39b0c97 [zsxwing] Support multiple SQLContexts in Web UI
Diffstat (limited to 'sql')
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/ui/AllExecutionsPage.scala2
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/ui/SQLTab.scala12
2 files changed, 11 insertions, 3 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/ui/AllExecutionsPage.scala b/sql/core/src/main/scala/org/apache/spark/sql/ui/AllExecutionsPage.scala
index 727fc4b37f..cb7ca60b2f 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/ui/AllExecutionsPage.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/ui/AllExecutionsPage.scala
@@ -178,7 +178,7 @@ private[ui] abstract class ExecutionTable(
"%s/jobs/job?id=%s".format(UIUtils.prependBaseUri(parent.basePath), jobId)
private def executionURL(executionID: Long): String =
- "%s/sql/execution?id=%s".format(UIUtils.prependBaseUri(parent.basePath), executionID)
+ s"${UIUtils.prependBaseUri(parent.basePath)}/${parent.prefix}/execution?id=$executionID"
}
private[ui] class RunningExecutionTable(
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/ui/SQLTab.scala b/sql/core/src/main/scala/org/apache/spark/sql/ui/SQLTab.scala
index a9e5226303..3bba0afaf1 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/ui/SQLTab.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/ui/SQLTab.scala
@@ -17,13 +17,14 @@
package org.apache.spark.sql.ui
+import java.util.concurrent.atomic.AtomicInteger
+
import org.apache.spark.Logging
import org.apache.spark.sql.SQLContext
import org.apache.spark.ui.{SparkUI, SparkUITab}
private[sql] class SQLTab(sqlContext: SQLContext, sparkUI: SparkUI)
- extends SparkUITab(sparkUI, "sql") with Logging {
-
+ extends SparkUITab(sparkUI, SQLTab.nextTabName) with Logging {
val parent = sparkUI
val listener = sqlContext.listener
@@ -38,4 +39,11 @@ private[sql] class SQLTab(sqlContext: SQLContext, sparkUI: SparkUI)
private[sql] object SQLTab {
private val STATIC_RESOURCE_DIR = "org/apache/spark/sql/ui/static"
+
+ private val nextTabId = new AtomicInteger(0)
+
+ private def nextTabName: String = {
+ val nextId = nextTabId.getAndIncrement()
+ if (nextId == 0) "SQL" else s"SQL${nextId}"
+ }
}