diff --git a/core/src/main/scala/org/apache/spark/ui/PagedTable.scala b/core/src/main/scala/org/apache/spark/ui/PagedTable.scala
index 79974df2603fd..65fa38387b9ee 100644
--- a/core/src/main/scala/org/apache/spark/ui/PagedTable.scala
+++ b/core/src/main/scala/org/apache/spark/ui/PagedTable.scala
@@ -94,14 +94,16 @@ private[ui] trait PagedTable[T] {
val _dataSource = dataSource
try {
val PageData(totalPages, data) = _dataSource.pageData(page)
+ val pageNavi = pageNavigation(page, _dataSource.pageSize, totalPages)
- {pageNavigation(page, _dataSource.pageSize, totalPages)}
+ {pageNavi}
{headers}
{data.map(row)}
+ {pageNavi}
} catch {
case e: IndexOutOfBoundsException =>
diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala
index 8ed51746ab9d0..633e740b9c9bd 100644
--- a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala
+++ b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala
@@ -835,7 +835,8 @@ private[ui] class TaskTableRowData(
val speculative: Boolean,
val status: String,
val taskLocality: String,
- val executorIdAndHost: String,
+ val executorId: String,
+ val host: String,
val launchTime: Long,
val duration: Long,
val formatDuration: String,
@@ -1017,7 +1018,8 @@ private[ui] class TaskDataSource(
info.speculative,
info.status,
info.taskLocality.toString,
- s"${info.executorId} / ${info.host}",
+ info.executorId,
+ info.host,
info.launchTime,
duration,
formatDuration,
@@ -1047,7 +1049,8 @@ private[ui] class TaskDataSource(
case "Attempt" => Ordering.by(_.attempt)
case "Status" => Ordering.by(_.status)
case "Locality Level" => Ordering.by(_.taskLocality)
- case "Executor ID / Host" => Ordering.by(_.executorIdAndHost)
+ case "Executor ID" => Ordering.by(_.executorId)
+ case "Host" => Ordering.by(_.host)
case "Launch Time" => Ordering.by(_.launchTime)
case "Duration" => Ordering.by(_.duration)
case "Scheduler Delay" => Ordering.by(_.schedulerDelay)
@@ -1200,7 +1203,7 @@ private[ui] class TaskPagedTable(
val taskHeadersAndCssClasses: Seq[(String, String)] =
Seq(
("Index", ""), ("ID", ""), ("Attempt", ""), ("Status", ""), ("Locality Level", ""),
- ("Executor ID / Host", ""), ("Launch Time", ""), ("Duration", ""),
+ ("Executor ID", ""), ("Host", ""), ("Launch Time", ""), ("Duration", ""),
("Scheduler Delay", TaskDetailsClassNames.SCHEDULER_DELAY),
("Task Deserialization Time", TaskDetailsClassNames.TASK_DESERIALIZATION_TIME),
("GC Time", ""),
@@ -1271,8 +1274,9 @@ private[ui] class TaskPagedTable(
{if (task.speculative) s"${task.attempt} (speculative)" else task.attempt.toString} |
{task.status} |
{task.taskLocality} |
+ {task.executorId} |
- {task.executorIdAndHost}
+ {task.host}
{
task.logs.map {
|