in externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/spark/ui/EngineSessionPage.scala [141:230]
private def generateSQLStatsTable(
request: HttpServletRequestLike,
sessionID: String): Seq[Node] = {
val running = new mutable.ArrayBuffer[SparkOperationEvent]()
val completed = new mutable.ArrayBuffer[SparkOperationEvent]()
val failed = new mutable.ArrayBuffer[SparkOperationEvent]()
store.getStatementList
.filter(_.sessionId == sessionID)
.foreach { op =>
if (op.completeTime <= 0L) {
running += op
} else if (op.exception.isDefined) {
failed += op
} else {
completed += op
}
}
val content = mutable.ListBuffer[Node]()
if (running.nonEmpty) {
val sqlTableTag = "running-sqlstat"
val table = statementStatsTable(request, sqlTableTag, parent, running.toSeq)
content ++=
<span id="running-sqlstat" class="collapse-aggregated-runningSqlstat collapse-table"
onClick="collapseTable('collapse-aggregated-runningSqlstat',
'aggregated-runningSqlstat')">
<h4>
<span class="collapse-table-arrow arrow-open"></span>
<a>Running Statement Statistics</a>
</h4>
</span> ++
<div class="aggregated-runningSqlstat collapsible-table">
{table}
</div>
}
if (completed.nonEmpty) {
val table = {
val sqlTableTag = "completed-sqlstat"
statementStatsTable(
request,
sqlTableTag,
parent,
completed.toSeq)
}
content ++=
<span id="completed-sqlstat" class="collapse-aggregated-completedSqlstat collapse-table"
onClick="collapseTable('collapse-aggregated-completedSqlstat',
'aggregated-completedSqlstat')">
<h4>
<span class="collapse-table-arrow arrow-open"></span>
<a>Completed Statement Statistics (
{completed.size}
)</a>
</h4>
</span> ++
<div class="aggregated-completedSqlstat collapsible-table">
{table}
</div>
}
if (failed.nonEmpty) {
val table = {
val sqlTableTag = "failed-sqlstat"
statementStatsTable(
request,
sqlTableTag,
parent,
failed.toSeq)
}
content ++=
<span id="failed-sqlstat" class="collapse-aggregated-failedSqlstat collapse-table"
onClick="collapseTable('collapse-aggregated-failedSqlstat',
'aggregated-failedSqlstat')">
<h4>
<span class="collapse-table-arrow arrow-open"></span>
<a>Failed Statement Statistics (
{failed.size}
)</a>
</h4>
</span> ++
<div class="aggregated-failedSqlstat collapsible-table">
{table}
</div>
}
content
}