Github user tgravescs commented on a diff in the pull request:

    https://github.com/apache/spark/pull/13670#discussion_r70503658
  
    --- Diff: core/src/main/scala/org/apache/spark/ui/exec/ExecutorsPage.scala 
---
    @@ -54,78 +53,16 @@ private[ui] class ExecutorsPage(
       // When GCTimePercent is edited change ToolTips.TASK_TIME to match
       private val GCTimePercent = 0.1
     
    -  // a safe String to Int for sorting ids (converts non-numeric Strings to 
-1)
    -  private def idStrToInt(str: String) : Int = Try(str.toInt).getOrElse(-1)
    -
       def render(request: HttpServletRequest): Seq[Node] = {
    -    val (activeExecutorInfo, deadExecutorInfo) = listener.synchronized {
    -      // The follow codes should be protected by `listener` to make sure 
no executors will be
    -      // removed before we query their status. See SPARK-12784.
    -      val _activeExecutorInfo = {
    -        for (statusId <- 0 until listener.activeStorageStatusList.size)
    -          yield ExecutorsPage.getExecInfo(listener, statusId, isActive = 
true)
    -      }
    -      val _deadExecutorInfo = {
    -        for (statusId <- 0 until listener.deadStorageStatusList.size)
    -          yield ExecutorsPage.getExecInfo(listener, statusId, isActive = 
false)
    -      }
    -      (_activeExecutorInfo, _deadExecutorInfo)
    -    }
    -
    -    val execInfo = activeExecutorInfo ++ deadExecutorInfo
    -    implicit val idOrder = Ordering[Int].on((s: String) => 
idStrToInt(s)).reverse
    -    val execInfoSorted = execInfo.sortBy(_.id)
    -    val logsExist = execInfo.filter(_.executorLogs.nonEmpty).nonEmpty
    -
    -    val execTable = {
    -      <table class={UIUtils.TABLE_CLASS_STRIPED_SORTABLE}>
    -        <thead>
    -          <th class="sorttable_numeric">Executor ID</th>
    -          <th>Address</th>
    -          <th>Status</th>
    -          <th>RDD Blocks</th>
    -          <th><span data-toggle="tooltip" 
title={ToolTips.STORAGE_MEMORY}>Storage Memory</span></th>
    -          <th>Disk Used</th>
    -          <th>Cores</th>
    -          <th>Active Tasks</th>
    -          <th>Failed Tasks</th>
    -          <th>Complete Tasks</th>
    -          <th>Total Tasks</th>
    -          <th><span data-toggle="tooltip" title={ToolTips.TASK_TIME}>Task 
Time (GC Time)</span></th>
    -          <th><span data-toggle="tooltip" 
title={ToolTips.INPUT}>Input</span></th>
    -          <th><span data-toggle="tooltip" 
title={ToolTips.SHUFFLE_READ}>Shuffle Read</span></th>
    -          <th>
    -            <!-- Place the shuffle write tooltip on the left (rather than 
the default position
    -              of on top) because the shuffle write column is the last 
column on the right side and
    -              the tooltip is wider than the column, so it doesn't fit on 
top. -->
    -            <span data-toggle="tooltip" data-placement="left" 
title={ToolTips.SHUFFLE_WRITE}>
    -              Shuffle Write
    -            </span>
    -          </th>
    -          {if (logsExist) <th class="sorttable_nosort">Logs</th> else 
Seq.empty}
    -          {if (threadDumpEnabled) <th class="sorttable_nosort">Thread 
Dump</th> else Seq.empty}
    -        </thead>
    -        <tbody>
    -          {execInfoSorted.map(execRow(_, logsExist))}
    -        </tbody>
    -      </table>
    -    }
    -
         val content =
    -      <div class="row">
    -        <div class="span12">
    -          <h4>Summary</h4>
    -          {execSummary(activeExecutorInfo, deadExecutorInfo)}
    -        </div>
    -      </div>
    -      <div class = "row">
    -        <div class="span12">
    -          <h4>Executors</h4>
    -          {execTable}
    -        </div>
    +      <div>
    +        {
    +        <div id="active-executors"></div> ++
    +          <script 
src={UIUtils.prependBaseUri("/static/executorspage.js")}> </script>
    +        }
           </div>;
     
    -    UIUtils.headerSparkPage("Executors", content, parent)
    +    UIUtils.headerSparkPage("Executors", content, parent, useDataTables = 
true)
       }
     
       /** Render an HTML row representing an executor */
    --- End diff --
    
    it seems like there is a bunch of other things in here that were used by 
render that can be removed. execRow, execSummaryRow, taskData, etc.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to