From c4a209fb110cfea720febe2deb07e2032b53616d Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 8 Sep 2019 16:31:46 +0200 Subject: [PATCH 01/11] [SPARK-29019][WebUI] Improve tooltip JDBC/ODBC Server tab --- .../scala/org/apache/spark/ui/ToolTips.scala | 11 ++++ .../scala/org/apache/spark/ui/UIUtils.scala | 22 +++++++- .../org/apache/spark/ui/UIUtilsSuite.scala | 50 +++++++++++++++++++ .../thriftserver/ui/ThriftServerPage.scala | 5 +- 4 files changed, 85 insertions(+), 3 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala index 766cc65084f07..a78bfba829539 100644 --- a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala +++ b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala @@ -99,4 +99,15 @@ private[spark] object ToolTips { dynamic allocation is enabled. The number of granted executors may exceed the limit ephemerally when executors are being killed. """ + val THRIFT_SERVER_FINISH_TIME = + "Finish time of the execution, before fetching the results" + + val THRIFT_SERVER_CLOSE_TIME = + "Close time of the process after fetching the results" + + val THRIFT_SERVER_EXECUTION = + "Difference between start time and finish time" + + val THRIFT_SERVER_DURATION = + "Difference between start time and close time" } diff --git a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala index 70e24bd0e7ecd..e05294b64c5f0 100644 --- a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala +++ b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala @@ -311,7 +311,9 @@ private[spark] object UIUtils extends Logging { id: Option[String] = None, headerClasses: Seq[String] = Seq.empty, stripeRowsWithCss: Boolean = true, - sortable: Boolean = true): Seq[Node] = { + sortable: Boolean = true, + // The tooltip information could be None, which indicates header does not have a tooltip. + tooltipHeaders: Seq[Option[String]] = Seq.empty): Seq[Node] = { val listingTableClass = { val _tableClass = if (stripeRowsWithCss) TABLE_CLASS_STRIPED else TABLE_CLASS_NOT_STRIPED @@ -332,6 +334,14 @@ private[spark] object UIUtils extends Logging { } } + def getTooltip(index: Int): Option[String] = { + if (index < tooltipHeaders.size) { + tooltipHeaders(index) + } else { + None + } + } + val newlinesInHeader = headers.exists(_.contains("\n")) def getHeaderContent(header: String): Seq[Node] = { if (newlinesInHeader) { @@ -345,7 +355,15 @@ private[spark] object UIUtils extends Logging { val headerRow: Seq[Node] = { headers.view.zipWithIndex.map { x => - {getHeaderContent(x._1)} + getTooltip(x._2) match { + case Some(tooltip) => + + + {getHeaderContent(x._1)} + + + case None => {getHeaderContent(x._1)} + } } } diff --git a/core/src/test/scala/org/apache/spark/ui/UIUtilsSuite.scala b/core/src/test/scala/org/apache/spark/ui/UIUtilsSuite.scala index de105b6f188f5..82773e3cc6860 100644 --- a/core/src/test/scala/org/apache/spark/ui/UIUtilsSuite.scala +++ b/core/src/test/scala/org/apache/spark/ui/UIUtilsSuite.scala @@ -18,6 +18,7 @@ package org.apache.spark.ui import scala.xml.{Node, Text} +import scala.xml.Utility.trim import org.apache.spark.SparkFunSuite @@ -129,6 +130,55 @@ class UIUtilsSuite extends SparkFunSuite { assert(decoded1 === decodeURLParameter(decoded1)) } + test("listingTable with tooltips") { + + def generateDataRowValue: String => Seq[Node] = row => {row} + val header = Seq("Header1", "Header2") + val data = Seq("Data1", "Data2") + val tooltip = Seq(None, Some("tooltip")) + + val generated = listingTable(header, generateDataRowValue, data, tooltipHeaders = tooltip) + + val expected: Node = +
+ + + + + + {data.map(generateDataRowValue)} + +
{header(0)} + + {header(1)} + +
+ + assert(trim(generated(0)) == trim(expected)) + } + + test("listingTable without tooltips") { + + def generateDataRowValue: String => Seq[Node] = row => {row} + val header = Seq("Header1", "Header2") + val data = Seq("Data1", "Data2") + + val generated = listingTable(header, generateDataRowValue, data) + + val expected = + + + + + + + {data.map(generateDataRowValue)} + +
{header(0)}{header(1)}
+ + assert(trim(generated(0)) == trim(expected)) + } + private def verify( desc: String, expected: Node, diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala index 261e8fc912eb9..35923c6c4bcaf 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala @@ -72,6 +72,9 @@ private[ui] class ThriftServerPage(parent: ThriftServerTab) extends WebUIPage("" val table = if (numStatement > 0) { val headerRow = Seq("User", "JobID", "GroupID", "Start Time", "Finish Time", "Close Time", "Execution Time", "Duration", "Statement", "State", "Detail") + val tooltips = Seq(None,None,None,None,Some(ToolTips.THRIFT_SERVER_FINISH_TIME), + Some(ToolTips.THRIFT_SERVER_CLOSE_TIME), Some(ToolTips.THRIFT_SERVER_EXECUTION), + Some(ToolTips.THRIFT_SERVER_DURATION), None,None,None) val dataRows = listener.getExecutionList.sortBy(_.startTimestamp).reverse def generateDataRow(info: ExecutionInfo): Seq[Node] = { @@ -100,7 +103,7 @@ private[ui] class ThriftServerPage(parent: ThriftServerTab) extends WebUIPage("" } Some(UIUtils.listingTable(headerRow, generateDataRow, - dataRows, false, None, Seq(null), false)) + dataRows, false, None, Seq(null), false, tooltipHeaders = tooltips)) } else { None } From 681b534caf38aef534fd4c01d3b127023b9971d9 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 9 Sep 2019 22:50:49 +0200 Subject: [PATCH 02/11] [SPARK-29019][WebUI] Fix scala style --- .../spark/sql/hive/thriftserver/ui/ThriftServerPage.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala index 35923c6c4bcaf..d9a9f56dd6ab1 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala @@ -72,9 +72,9 @@ private[ui] class ThriftServerPage(parent: ThriftServerTab) extends WebUIPage("" val table = if (numStatement > 0) { val headerRow = Seq("User", "JobID", "GroupID", "Start Time", "Finish Time", "Close Time", "Execution Time", "Duration", "Statement", "State", "Detail") - val tooltips = Seq(None,None,None,None,Some(ToolTips.THRIFT_SERVER_FINISH_TIME), + val tooltips = Seq(None, None, None, None, Some(ToolTips.THRIFT_SERVER_FINISH_TIME), Some(ToolTips.THRIFT_SERVER_CLOSE_TIME), Some(ToolTips.THRIFT_SERVER_EXECUTION), - Some(ToolTips.THRIFT_SERVER_DURATION), None,None,None) + Some(ToolTips.THRIFT_SERVER_DURATION), None, None, None) val dataRows = listener.getExecutionList.sortBy(_.startTimestamp).reverse def generateDataRow(info: ExecutionInfo): Seq[Node] = { From a95c90be74998f1e1049b424ee7a2426059f2e1b Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 10 Sep 2019 22:00:45 +0200 Subject: [PATCH 03/11] [SPARK-29019][WebUI] Fix typo and text --- core/src/main/scala/org/apache/spark/ui/ToolTips.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala index a78bfba829539..1943bc13900db 100644 --- a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala +++ b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala @@ -99,11 +99,12 @@ private[spark] object ToolTips { dynamic allocation is enabled. The number of granted executors may exceed the limit ephemerally when executors are being killed. """ + val THRIFT_SERVER_FINISH_TIME = "Finish time of the execution, before fetching the results" val THRIFT_SERVER_CLOSE_TIME = - "Close time of the process after fetching the results" + "Close time of the operation after fetching the results" val THRIFT_SERVER_EXECUTION = "Difference between start time and finish time" From 2d278d03c2adfb0aef401d840e56fc231af109b6 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 10 Sep 2019 22:46:16 +0200 Subject: [PATCH 04/11] [SPARK-29019][WebUI] Update ThiftServerSessionPage With the same tooltips of ThriftServerPage --- .../sql/hive/thriftserver/ui/ThriftServerSessionPage.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala index 81df1304085e8..f5a7d7dc9d518 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala @@ -81,6 +81,9 @@ private[ui] class ThriftServerSessionPage(parent: ThriftServerTab) val table = if (numStatement > 0) { val headerRow = Seq("User", "JobID", "GroupID", "Start Time", "Finish Time", "Close Time", "Execution Time", "Duration", "Statement", "State", "Detail") + val tooltips = Seq(None, None, None, None, Some(ToolTips.THRIFT_SERVER_FINISH_TIME), + Some(ToolTips.THRIFT_SERVER_CLOSE_TIME), Some(ToolTips.THRIFT_SERVER_EXECUTION), + Some(ToolTips.THRIFT_SERVER_DURATION), None, None, None) val dataRows = executionList.sortBy(_.startTimestamp).reverse def generateDataRow(info: ExecutionInfo): Seq[Node] = { @@ -109,7 +112,7 @@ private[ui] class ThriftServerSessionPage(parent: ThriftServerTab) } Some(UIUtils.listingTable(headerRow, generateDataRow, - dataRows, false, None, Seq(null), false)) + dataRows, false, None, Seq(null), false, tooltipHeaders = tooltips)) } else { None } From 793ef928803036cb4efa55b48c8d7aefe01328f6 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 10 Sep 2019 23:32:10 +0200 Subject: [PATCH 05/11] [SPARK-29019][WebUI] Fix white space scala style --- core/src/main/scala/org/apache/spark/ui/ToolTips.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala index 1943bc13900db..1a8f2d4042940 100644 --- a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala +++ b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala @@ -99,7 +99,7 @@ private[spark] object ToolTips { dynamic allocation is enabled. The number of granted executors may exceed the limit ephemerally when executors are being killed. """ - + val THRIFT_SERVER_FINISH_TIME = "Finish time of the execution, before fetching the results" From 7f480f837b1099f475a60418dc6313e66357ab99 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 10 Sep 2019 23:42:41 +0200 Subject: [PATCH 06/11] [SPARK-29019][WebUI] Fix tooltip description --- core/src/main/scala/org/apache/spark/ui/ToolTips.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala index 1a8f2d4042940..13b7e5feedccb 100644 --- a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala +++ b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala @@ -101,10 +101,10 @@ private[spark] object ToolTips { """ val THRIFT_SERVER_FINISH_TIME = - "Finish time of the execution, before fetching the results" + "Execution finish time, before fetching the results" val THRIFT_SERVER_CLOSE_TIME = - "Close time of the operation after fetching the results" + "Operation close time after fetching the results" val THRIFT_SERVER_EXECUTION = "Difference between start time and finish time" From 344fd6f80e6c4a8f9f29eeff5e0ec413387f01a1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 10 Sep 2019 23:51:08 +0200 Subject: [PATCH 07/11] [SPARK-29019][WebUI] Improve comments --- core/src/main/scala/org/apache/spark/ui/UIUtils.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala index e05294b64c5f0..6dbe63b564e69 100644 --- a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala +++ b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala @@ -309,10 +309,12 @@ private[spark] object UIUtils extends Logging { data: Iterable[T], fixedWidth: Boolean = false, id: Option[String] = None, + // When headerClasses is not empty, it should have the same length as headers parameter headerClasses: Seq[String] = Seq.empty, stripeRowsWithCss: Boolean = true, sortable: Boolean = true, // The tooltip information could be None, which indicates header does not have a tooltip. + // When tooltipHeaders is not empty, it should have the same length as headers parameter tooltipHeaders: Seq[Option[String]] = Seq.empty): Seq[Node] = { val listingTableClass = { From 647493503394f9a5079f92fa3087a37703b71d4a Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 11 Sep 2019 19:30:52 +0200 Subject: [PATCH 08/11] [SPARK-29019][WebUI] Assert equal lenght parameters --- .../apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala | 1 + .../spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala | 1 + 2 files changed, 2 insertions(+) diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala index d9a9f56dd6ab1..703f1409b2dc8 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala @@ -75,6 +75,7 @@ private[ui] class ThriftServerPage(parent: ThriftServerTab) extends WebUIPage("" val tooltips = Seq(None, None, None, None, Some(ToolTips.THRIFT_SERVER_FINISH_TIME), Some(ToolTips.THRIFT_SERVER_CLOSE_TIME), Some(ToolTips.THRIFT_SERVER_EXECUTION), Some(ToolTips.THRIFT_SERVER_DURATION), None, None, None) + assert(headerRow.length == tooltips.length) val dataRows = listener.getExecutionList.sortBy(_.startTimestamp).reverse def generateDataRow(info: ExecutionInfo): Seq[Node] = { diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala index f5a7d7dc9d518..55845962c187c 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala @@ -84,6 +84,7 @@ private[ui] class ThriftServerSessionPage(parent: ThriftServerTab) val tooltips = Seq(None, None, None, None, Some(ToolTips.THRIFT_SERVER_FINISH_TIME), Some(ToolTips.THRIFT_SERVER_CLOSE_TIME), Some(ToolTips.THRIFT_SERVER_EXECUTION), Some(ToolTips.THRIFT_SERVER_DURATION), None, None, None) + assert(headerRow.length == tooltips.length) val dataRows = executionList.sortBy(_.startTimestamp).reverse def generateDataRow(info: ExecutionInfo): Seq[Node] = { From 1bb6196bb45f67922008fa81b99b3dd3b25dc878 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 26 Sep 2019 22:56:09 +0200 Subject: [PATCH 09/11] [SPARK-29019] Move tooltips to thrift server module --- .../scala/org/apache/spark/ui/ToolTips.scala | 12 ------- .../thriftserver/ui/ThriftServerPage.scala | 7 ++-- .../ui/ThriftServerSessionPage.scala | 7 ++-- .../sql/hive/thriftserver/ui/ToolTips.scala | 32 +++++++++++++++++++ 4 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ToolTips.scala diff --git a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala index 13b7e5feedccb..766cc65084f07 100644 --- a/core/src/main/scala/org/apache/spark/ui/ToolTips.scala +++ b/core/src/main/scala/org/apache/spark/ui/ToolTips.scala @@ -99,16 +99,4 @@ private[spark] object ToolTips { dynamic allocation is enabled. The number of granted executors may exceed the limit ephemerally when executors are being killed. """ - - val THRIFT_SERVER_FINISH_TIME = - "Execution finish time, before fetching the results" - - val THRIFT_SERVER_CLOSE_TIME = - "Operation close time after fetching the results" - - val THRIFT_SERVER_EXECUTION = - "Difference between start time and finish time" - - val THRIFT_SERVER_DURATION = - "Difference between start time and close time" } diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala index 703f1409b2dc8..d22cfb4c586e4 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala @@ -28,6 +28,7 @@ import org.apache.spark.internal.Logging import org.apache.spark.sql.hive.thriftserver.HiveThriftServer2.{ExecutionInfo, ExecutionState, SessionInfo} import org.apache.spark.ui._ import org.apache.spark.ui.UIUtils._ +import org.apache.spark.sql.hive.thriftserver.ui.ToolTips._ /** Page for Spark Web UI that shows statistics of the thrift server */ @@ -72,9 +73,9 @@ private[ui] class ThriftServerPage(parent: ThriftServerTab) extends WebUIPage("" val table = if (numStatement > 0) { val headerRow = Seq("User", "JobID", "GroupID", "Start Time", "Finish Time", "Close Time", "Execution Time", "Duration", "Statement", "State", "Detail") - val tooltips = Seq(None, None, None, None, Some(ToolTips.THRIFT_SERVER_FINISH_TIME), - Some(ToolTips.THRIFT_SERVER_CLOSE_TIME), Some(ToolTips.THRIFT_SERVER_EXECUTION), - Some(ToolTips.THRIFT_SERVER_DURATION), None, None, None) + val tooltips = Seq(None, None, None, None, Some(THRIFT_SERVER_FINISH_TIME), + Some(THRIFT_SERVER_CLOSE_TIME), Some(THRIFT_SERVER_EXECUTION), + Some(THRIFT_SERVER_DURATION), None, None, None) assert(headerRow.length == tooltips.length) val dataRows = listener.getExecutionList.sortBy(_.startTimestamp).reverse diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala index 55845962c187c..ffbbb95b339ec 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala @@ -28,6 +28,7 @@ import org.apache.spark.internal.Logging import org.apache.spark.sql.hive.thriftserver.HiveThriftServer2.{ExecutionInfo, ExecutionState} import org.apache.spark.ui._ import org.apache.spark.ui.UIUtils._ +import org.apache.spark.sql.hive.thriftserver.ui.ToolTips._ /** Page for Spark Web UI that shows statistics of jobs running in the thrift server */ private[ui] class ThriftServerSessionPage(parent: ThriftServerTab) @@ -81,9 +82,9 @@ private[ui] class ThriftServerSessionPage(parent: ThriftServerTab) val table = if (numStatement > 0) { val headerRow = Seq("User", "JobID", "GroupID", "Start Time", "Finish Time", "Close Time", "Execution Time", "Duration", "Statement", "State", "Detail") - val tooltips = Seq(None, None, None, None, Some(ToolTips.THRIFT_SERVER_FINISH_TIME), - Some(ToolTips.THRIFT_SERVER_CLOSE_TIME), Some(ToolTips.THRIFT_SERVER_EXECUTION), - Some(ToolTips.THRIFT_SERVER_DURATION), None, None, None) + val tooltips = Seq(None, None, None, None, Some(THRIFT_SERVER_FINISH_TIME), + Some(THRIFT_SERVER_CLOSE_TIME), Some(THRIFT_SERVER_EXECUTION), + Some(THRIFT_SERVER_DURATION), None, None, None) assert(headerRow.length == tooltips.length) val dataRows = executionList.sortBy(_.startTimestamp).reverse diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ToolTips.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ToolTips.scala new file mode 100644 index 0000000000000..1990b8f2d3285 --- /dev/null +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ToolTips.scala @@ -0,0 +1,32 @@ +/* + * 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.hive.thriftserver.ui + +private[ui] object ToolTips { + val THRIFT_SERVER_FINISH_TIME = + "Execution finish time, before fetching the results" + + val THRIFT_SERVER_CLOSE_TIME = + "Operation close time after fetching the results" + + val THRIFT_SERVER_EXECUTION = + "Difference between start time and finish time" + + val THRIFT_SERVER_DURATION = + "Difference between start time and close time" +} From 6ab97b83437951fd78aa51bc3ba8ead4d1650f05 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 26 Sep 2019 23:23:47 +0200 Subject: [PATCH 10/11] [SPARK-29019] Fix scala style --- .../spark/sql/hive/thriftserver/ui/ThriftServerPage.scala | 2 +- .../sql/hive/thriftserver/ui/ThriftServerSessionPage.scala | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala index d22cfb4c586e4..0232fdba97b74 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala @@ -26,9 +26,9 @@ import org.apache.commons.text.StringEscapeUtils import org.apache.spark.internal.Logging import org.apache.spark.sql.hive.thriftserver.HiveThriftServer2.{ExecutionInfo, ExecutionState, SessionInfo} +import org.apache.spark.sql.hive.thriftserver.ui.ToolTips._ import org.apache.spark.ui._ import org.apache.spark.ui.UIUtils._ -import org.apache.spark.sql.hive.thriftserver.ui.ToolTips._ /** Page for Spark Web UI that shows statistics of the thrift server */ diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala index ffbbb95b339ec..95fce526e5a5d 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala @@ -26,9 +26,10 @@ import org.apache.commons.text.StringEscapeUtils import org.apache.spark.internal.Logging import org.apache.spark.sql.hive.thriftserver.HiveThriftServer2.{ExecutionInfo, ExecutionState} +import org.apache.spark.sql.hive.thriftserver.ui.ToolTips._ import org.apache.spark.ui._ import org.apache.spark.ui.UIUtils._ -import org.apache.spark.sql.hive.thriftserver.ui.ToolTips._ + /** Page for Spark Web UI that shows statistics of jobs running in the thrift server */ private[ui] class ThriftServerSessionPage(parent: ThriftServerTab) From 281c8ce79efb561f706bf076636ecba5cc6e328f Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 27 Sep 2019 18:56:21 +0200 Subject: [PATCH 11/11] [SPARK-29019] delete blank line --- .../spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala index 95fce526e5a5d..55804721fbb50 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala @@ -30,7 +30,6 @@ import org.apache.spark.sql.hive.thriftserver.ui.ToolTips._ import org.apache.spark.ui._ import org.apache.spark.ui.UIUtils._ - /** Page for Spark Web UI that shows statistics of jobs running in the thrift server */ private[ui] class ThriftServerSessionPage(parent: ThriftServerTab) extends WebUIPage("session") with Logging {