diff options
Diffstat (limited to 'sql')
-rw-r--r-- | sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala index f0b56c2eb7..a4dbd2e197 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala @@ -74,16 +74,14 @@ private[sql] class ExecutionPage(parent: SQLTab) extends WebUIPage("execution") }} </li> }} - <li> - <strong>Detail: </strong><br/> - <pre>{executionUIData.physicalPlanDescription}</pre> - </li> </ul> </div> val metrics = listener.getExecutionMetrics(executionId) - summary ++ planVisualization(metrics, executionUIData.physicalPlanGraph) + summary ++ + planVisualization(metrics, executionUIData.physicalPlanGraph) ++ + physicalPlanDescription(executionUIData.physicalPlanDescription) }.getOrElse { <div>No information to display for Plan {executionId}</div> } @@ -124,4 +122,23 @@ private[sql] class ExecutionPage(parent: SQLTab) extends WebUIPage("execution") private def jobURL(jobId: Long): String = "%s/jobs/job?id=%s".format(UIUtils.prependBaseUri(parent.basePath), jobId) + + private def physicalPlanDescription(physicalPlanDescription: String): Seq[Node] = { + <div> + <span style="cursor: pointer;" onclick="clickPhysicalPlanDetails();"> + <span id="physical-plan-details-arrow" class="arrow-closed"></span> + <a>Details</a> + </span> + </div> + <div id="physical-plan-details" style="display: none;"> + <pre>{physicalPlanDescription}</pre> + </div> + <script> + function clickPhysicalPlanDetails() {{ + $('#physical-plan-details').toggle(); + $('#physical-plan-details-arrow').toggleClass('arrow-open').toggleClass('arrow-closed'); + }} + </script> + <br/> + } } |