aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/resources/org
diff options
context:
space:
mode:
authorzhuol <zhuol@yahoo-inc.com>2016-02-23 11:16:42 -0600
committerTom Graves <tgraves@yahoo-inc.com>2016-02-23 11:16:42 -0600
commit4d1e5f92e10f713e52b5e2dcaa6d8982669c1988 (patch)
tree3163fc92653cc5392369c61bc55fed5584839b97 /core/src/main/resources/org
parent87d7f8904ad59d04099c3f1034834bc78ef59baf (diff)
downloadspark-4d1e5f92e10f713e52b5e2dcaa6d8982669c1988.tar.gz
spark-4d1e5f92e10f713e52b5e2dcaa6d8982669c1988.tar.bz2
spark-4d1e5f92e10f713e52b5e2dcaa6d8982669c1988.zip
[SPARK-13364] Sort appId as num rather than str in history page.
## What changes were proposed in this pull request? History page now sorts the appID as a string, which can lead to unexpected order for the case "application_11111_9" and "application_11111_20". Add a new sort type called appId-numeric can fix it. ## How was the this patch tested? This patch was manually tested with UI. See the screenshot below: ![sortappidbetter](https://cloud.githubusercontent.com/assets/11683054/13185564/7f941a16-d707-11e5-8fb7-0316368d3030.png) Author: zhuol <zhuol@yahoo-inc.com> Closes #11259 from zhuoliu/13364.
Diffstat (limited to 'core/src/main/resources/org')
-rw-r--r--core/src/main/resources/org/apache/spark/ui/static/historypage-template.html2
-rw-r--r--core/src/main/resources/org/apache/spark/ui/static/historypage.js33
2 files changed, 33 insertions, 2 deletions
diff --git a/core/src/main/resources/org/apache/spark/ui/static/historypage-template.html b/core/src/main/resources/org/apache/spark/ui/static/historypage-template.html
index 66d111e439..a2b3826dd3 100644
--- a/core/src/main/resources/org/apache/spark/ui/static/historypage-template.html
+++ b/core/src/main/resources/org/apache/spark/ui/static/historypage-template.html
@@ -64,7 +64,7 @@
<tbody>
{{#applications}}
<tr>
- <td class="rowGroupColumn"><a href="/history/{{id}}/{{num}}/jobs/">{{id}}</a></td>
+ <td class="rowGroupColumn"><span title="{{id}}"><a href="/history/{{id}}/{{num}}/jobs/">{{id}}</a></span></td>
<td class="rowGroupColumn">{{name}}</td>
{{#attempts}}
<td class="attemptIDSpan"><a href="/history/{{id}}/{{attemptId}}/jobs/">{{attemptId}}</a></td>
diff --git a/core/src/main/resources/org/apache/spark/ui/static/historypage.js b/core/src/main/resources/org/apache/spark/ui/static/historypage.js
index 689c92e861..6195916195 100644
--- a/core/src/main/resources/org/apache/spark/ui/static/historypage.js
+++ b/core/src/main/resources/org/apache/spark/ui/static/historypage.js
@@ -37,6 +37,22 @@ function formatDuration(milliseconds) {
return hours.toFixed(1) + " h";
}
+function makeIdNumeric(id) {
+ var strs = id.split("_");
+ if (strs.length < 3) {
+ return id;
+ }
+ var appSeqNum = strs[2];
+ var resl = strs[0] + "_" + strs[1] + "_";
+ var diff = 10 - appSeqNum.length;
+ while (diff > 0) {
+ resl += "0"; // padding 0 before the app sequence number to make sure it has 10 characters
+ diff--;
+ }
+ resl += appSeqNum;
+ return resl;
+}
+
function formatDate(date) {
return date.split(".")[0].replace("T", " ");
}
@@ -62,6 +78,21 @@ jQuery.extend( jQuery.fn.dataTableExt.oSort, {
}
} );
+jQuery.extend( jQuery.fn.dataTableExt.oSort, {
+ "appid-numeric-pre": function ( a ) {
+ var x = a.match(/title="*(-?[0-9a-zA-Z\-\_]+)/)[1];
+ return makeIdNumeric(x);
+ },
+
+ "appid-numeric-asc": function ( a, b ) {
+ return ((a < b) ? -1 : ((a > b) ? 1 : 0));
+ },
+
+ "appid-numeric-desc": function ( a, b ) {
+ return ((a < b) ? 1 : ((a > b) ? -1 : 0));
+ }
+} );
+
$(document).ajaxStop($.unblockUI);
$(document).ajaxStart(function(){
$.blockUI({ message: '<h3>Loading history summary...</h3>'});
@@ -109,7 +140,7 @@ $(document).ready(function() {
var selector = "#history-summary-table";
var conf = {
"columns": [
- {name: 'first'},
+ {name: 'first', type: "appid-numeric"},
{name: 'second'},
{name: 'third'},
{name: 'fourth'},