You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by co...@apache.org on 2016/09/05 06:30:44 UTC
zeppelin git commit: [ZEPPELIN-1372]Automatically Detect the data
type in table and sort the numbers correctly
Repository: zeppelin
Updated Branches:
refs/heads/master d49734866 -> 6c6097a55
[ZEPPELIN-1372]Automatically Detect the data type in table and sort the numbers correctly
### What is this PR for?
Automatically detect the data type for the contents in the table.
This enables the sorting on numerical/date columns.
Please see https://issues.apache.org/jira/browse/ZEPPELIN-1372 for details.
### What type of PR is it?
[Bug Fix | Improvement]
### Todos
* [ ] - Task
### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1372
### How should this be tested?
Click on the title of columns and see whether the numeric contents are correctly sorted.
### Screenshots (if appropriate)
#### For numbers
Before
![screen shot 2016-08-26 at 1 35 02 pm](https://cloud.githubusercontent.com/assets/3334391/18019657/f6669852-6b91-11e6-9ff6-6bbde68bce20.png)
After
![screen shot 2016-08-26 at 1 34 00 pm](https://cloud.githubusercontent.com/assets/3334391/18019661/fa6dcd8a-6b91-11e6-95ce-339218b53e5a.png)
#### For dates
Before
![screen shot 2016-08-30 at 3 24 02 pm](https://cloud.githubusercontent.com/assets/3334391/18109384/df615a7a-6ec5-11e6-9c8f-6f07f5f56bd4.png)
After
![screen shot 2016-08-30 at 3 11 14 pm](https://cloud.githubusercontent.com/assets/3334391/18109351/9f28c48e-6ec5-11e6-9184-87093fcac5fe.png)
### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: Peilin Yang <pe...@twitter.com>
Closes #1371 from Peilin-Yang/ZEPPELIN-1372 and squashes the following commits:
72e470c [Peilin Yang] Merge branch 'master' into ZEPPELIN-1372
0333722 [Peilin Yang] refactor the logic
ab9713d [Peilin Yang] add more constraints to the number
c081f04 [Peilin Yang] switch the type detection of number/date to speed it up
461f00e [Peilin Yang] move the data type parsing at the same time when table data is loaded
7d62eb2 [Peilin Yang] automatic detect the type of the input in table for sorting purpose
Project: http://git-wip-us.apache.org/repos/asf/zeppelin/repo
Commit: http://git-wip-us.apache.org/repos/asf/zeppelin/commit/6c6097a5
Tree: http://git-wip-us.apache.org/repos/asf/zeppelin/tree/6c6097a5
Diff: http://git-wip-us.apache.org/repos/asf/zeppelin/diff/6c6097a5
Branch: refs/heads/master
Commit: 6c6097a55c0fedc7393af799868a9af1d699f46a
Parents: d497348
Author: Peilin Yang <pe...@twitter.com>
Authored: Thu Sep 1 14:05:40 2016 -0700
Committer: Damien CORNEAU <co...@gmail.com>
Committed: Mon Sep 5 15:30:26 2016 +0900
----------------------------------------------------------------------
.../notebook/paragraph/paragraph.controller.js | 24 +++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/6c6097a5/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js b/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js
index 302d107..bd3b6b3 100644
--- a/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js
+++ b/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js
@@ -865,6 +865,21 @@ angular.module('zeppelinWebApp').controller('ParagraphCtrl', function($scope, $r
}
};
+ $scope.parseTableCell = function(cell) {
+ if (!isNaN(cell)) {
+ if (cell.length === 0 || Number(cell) > Number.MAX_SAFE_INTEGER || Number(cell) < Number.MIN_SAFE_INTEGER) {
+ return cell;
+ } else {
+ return Number(cell);
+ }
+ }
+ var d = moment(cell);
+ if (d.isValid()) {
+ return d;
+ }
+ return cell;
+ };
+
$scope.loadTableData = function(result) {
if (!result) {
return;
@@ -898,8 +913,9 @@ angular.module('zeppelinWebApp').controller('ParagraphCtrl', function($scope, $r
if (i === 0) {
columnNames.push({name: col, index: j, aggr: 'sum'});
} else {
- cols.push(col);
- cols2.push({key: (columnNames[i]) ? columnNames[i].name : undefined, value: col});
+ var parsedCol = $scope.parseTableCell(col);
+ cols.push(parsedCol);
+ cols2.push({key: (columnNames[i]) ? columnNames[i].name : undefined, value: parsedCol});
}
}
if (i !== 0) {
@@ -978,7 +994,9 @@ angular.module('zeppelinWebApp').controller('ParagraphCtrl', function($scope, $r
cells: function(row, col, prop) {
var cellProperties = {};
cellProperties.renderer = function(instance, td, row, col, prop, value, cellProperties) {
- if (!isNaN(value)) {
+ if (value instanceof moment) {
+ td.innerHTML = value._i;
+ } else if (!isNaN(value)) {
cellProperties.format = '0,0.[00000]';
td.style.textAlign = 'left';
Handsontable.renderers.NumericRenderer.apply(this, arguments);