diff --git a/core/src/main/java/org/apache/spark/status/api/v1/TaskSorting.java b/core/src/main/java/org/apache/spark/status/api/v1/TaskSorting.java index de0fcfb03ceef..f19ed01d5aebf 100644 --- a/core/src/main/java/org/apache/spark/status/api/v1/TaskSorting.java +++ b/core/src/main/java/org/apache/spark/status/api/v1/TaskSorting.java @@ -17,18 +17,15 @@ package org.apache.spark.status.api.v1; -import org.apache.spark.annotation.DeveloperApi; import org.apache.spark.util.EnumUtil; import java.util.HashSet; import java.util.Set; -// exposed for jersey -@DeveloperApi public enum TaskSorting { ID, - IncreasingRuntime("runtime"), - DecreasingRuntime("-runtime"); + INCREASING_RUNTIME("runtime"), + DECREASING_RUNTIME("-runtime"); private final Set alternateNames; private TaskSorting(String... names) { diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/AllStagesResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/AllStagesResource.scala index 2bef722061745..54c78c425fe20 100644 --- a/core/src/main/scala/org/apache/spark/status/api/v1/AllStagesResource.scala +++ b/core/src/main/scala/org/apache/spark/status/api/v1/AllStagesResource.scala @@ -294,12 +294,16 @@ private[v1] abstract class MetricHelper[I,O]( quantiles: Array[Double]) { def getSubmetrics(raw: InternalTaskMetrics): Option[I] + def build: O + val data: Seq[I] = rawMetrics.flatMap(getSubmetrics) + /** applies the given function to all input metrics, and returns the quantiles */ def submetricQuantiles(f: I => Double): IndexedSeq[Double] = { Distribution(data.map { d => f(d) }).get.getQuantiles(quantiles) } + def metricOption: Option[O] = { if (data.isEmpty) { None diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/OneStageResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/OneStageResource.scala index 78a60175352cc..7800dfddacfca 100644 --- a/core/src/main/scala/org/apache/spark/status/api/v1/OneStageResource.scala +++ b/core/src/main/scala/org/apache/spark/status/api/v1/OneStageResource.scala @@ -147,8 +147,8 @@ object OneStageResource { val extractor: (TaskData => Long) = td => taskSorting match { case ID => td.taskId - case IncreasingRuntime => td.taskMetrics.map{_.executorRunTime}.getOrElse(-1L) - case DecreasingRuntime => -td.taskMetrics.map{_.executorRunTime}.getOrElse(-1L) + case INCREASING_RUNTIME => td.taskMetrics.map{_.executorRunTime}.getOrElse(-1L) + case DECREASING_RUNTIME => -td.taskMetrics.map{_.executorRunTime}.getOrElse(-1L) } Ordering.by(extractor) } diff --git a/core/src/test/resources/HistoryServerExpectations/applications/local-1427397477963/stages/20/0/taskList?sortBy=DecreasingRuntime/json_expectation b/core/src/test/resources/HistoryServerExpectations/applications/local-1427397477963/stages/20/0/taskList?sortBy=DECREASING_RUNTIME/json_expectation similarity index 100% rename from core/src/test/resources/HistoryServerExpectations/applications/local-1427397477963/stages/20/0/taskList?sortBy=DecreasingRuntime/json_expectation rename to core/src/test/resources/HistoryServerExpectations/applications/local-1427397477963/stages/20/0/taskList?sortBy=DECREASING_RUNTIME/json_expectation diff --git a/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala b/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala index 08d396b03c012..ea22a85f3f53b 100644 --- a/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala +++ b/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala @@ -104,7 +104,7 @@ class HistoryServerSuite extends FunSuite with BeforeAndAfter with Matchers with "stage task list w/ offset & length" -> "applications/local-1427397477963/stages/20/0/taskList?offset=10&length=50", "stage task list w/ sortBy" -> - "applications/local-1427397477963/stages/20/0/taskList?sortBy=DecreasingRuntime", + "applications/local-1427397477963/stages/20/0/taskList?sortBy=DECREASING_RUNTIME", "stage task list w/ sortBy short names: -runtime" -> "applications/local-1427397477963/stages/20/0/taskList?sortBy=-runtime", "stage task list w/ sortBy short names: runtime" ->