diff --git a/core/src/main/scala/org/apache/spark/deploy/history/HistoryPage.scala b/core/src/main/scala/org/apache/spark/deploy/history/HistoryPage.scala index 642d71b18c9e2..9249b40440529 100644 --- a/core/src/main/scala/org/apache/spark/deploy/history/HistoryPage.scala +++ b/core/src/main/scala/org/apache/spark/deploy/history/HistoryPage.scala @@ -33,9 +33,14 @@ private[history] class HistoryPage(parent: HistoryServer) extends WebUIPage("") val requestedFirst = (requestedPage - 1) * pageSize val requestedIncomplete = Option(request.getParameter("showIncomplete")).getOrElse("false").toBoolean + val requestedQuery = Option(request.getParameter("query")).getOrElse("") - val allApps = parent.getApplicationList() + var allApps = parent.getApplicationList() .filter(_.attempts.head.completed != requestedIncomplete) + if (!requestedQuery.equals("")) { + val query = requestedQuery.toLowerCase + allApps = allApps.filter(app => app.name.toLowerCase.contains(query)) + } val allAppsSize = allApps.size val actualFirst = if (requestedFirst < allAppsSize) requestedFirst else 0 @@ -74,19 +79,27 @@ private[history] class HistoryPage(parent: HistoryServer) extends WebUIPage("") // page, `...` will be displayed. if (allAppsSize > 0) { val leftSideIndices = - rangeIndices(actualPage - plusOrMinus until actualPage, 1 < _, requestedIncomplete) + rangeIndices(actualPage - plusOrMinus until actualPage, 1 < _, requestedIncomplete, + requestedQuery) val rightSideIndices = rangeIndices(actualPage + 1 to actualPage + plusOrMinus, _ < pageCount, - requestedIncomplete) + requestedIncomplete, requestedQuery)