{"action":"closed","issue":{"url":"https://api.github.com/repos/EclairJS/eclairjs-nashorn/issues/68","repository_url":"https://api.github.com/repos/EclairJS/eclairjs-nashorn","labels_url":"https://api.github.com/repos/EclairJS/eclairjs-nashorn/issues/68/labels{/name}","comments_url":"https://api.github.com/repos/EclairJS/eclairjs-nashorn/issues/68/comments","events_url":"https://api.github.com/repos/EclairJS/eclairjs-nashorn/issues/68/events","html_url":"https://github.com/EclairJS/eclairjs-nashorn/issues/68","id":129592345,"number":68,"title":"Enhance sql.functions to spark 1.6.0","user":{"login":"billreed63","id":717822,"avatar_url":"https://avatars.githubusercontent.com/u/717822?v=3","gravatar_id":"","url":"https://api.github.com/users/billreed63","html_url":"https://github.com/billreed63","followers_url":"https://api.github.com/users/billreed63/followers","following_url":"https://api.github.com/users/billreed63/following{/other_user}","gists_url":"https://api.github.com/users/billreed63/gists{/gist_id}","starred_url":"https://api.github.com/users/billreed63/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/billreed63/subscriptions","organizations_url":"https://api.github.com/users/billreed63/orgs","repos_url":"https://api.github.com/users/billreed63/repos","events_url":"https://api.github.com/users/billreed63/events{/privacy}","received_events_url":"https://api.github.com/users/billreed63/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/EclairJS/eclairjs-nashorn/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-28T21:47:56Z","updated_at":"2016-04-19T14:01:17Z","closed_at":"2016-04-19T14:01:17Z","body":"#sutask #47\r\n````\r\ndiff -r ./generatedNashorn/sql/functions.js ./generatedNashorn16/sql/functions.js\r\n194a195,292\r\n>>>  * Aggregate function: returns a list of objects with duplicates.\r\n>>>  *\r\n>>>  * For now this is an alias for the collect_list Hive UDAF.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.collect_listwithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.collect_list(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns a list of objects with duplicates.\r\n>>>  *\r\n>>>  * For now this is an alias for the collect_list Hive UDAF.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.collect_listwithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.collect_list(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns a set of objects with duplicate elements eliminated.\r\n>>>  *\r\n>>>  * For now this is an alias for the collect_set Hive UDAF.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.collect_setwithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.collect_set(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns a set of objects with duplicate elements eliminated.\r\n>>>  *\r\n>>>  * For now this is an alias for the collect_set Hive UDAF.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.collect_setwithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.collect_set(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the Pearson Correlation Coefficient for two columns.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.corrwithColumn = function(column1,column2) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var column1_uw = Utils.unwrapObject(column1);\r\n>>> //   var column2_uw = Utils.unwrapObject(column2);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.corr(column1_uw,column2_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the Pearson Correlation Coefficient for two columns.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.corrwithstring = function(columnName1,columnName2) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.corr(columnName1,columnName2);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n214c312\r\n<<< * @returns {Column} \r\n---\r\n>>>  * @returns {TypedColumn} \r\n219c317\r\n< //   return new Column(javaObject);\r\n---\r\n>>> //   return new TypedColumn(javaObject);\r\n285a384,412\r\n>>>  * Aggregate function: returns the kurtosis of the values in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.kurtosiswithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.kurtosis(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the kurtosis of the values in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.kurtosiswithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.kurtosis(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n403a531,650\r\n>>>  * Aggregate function: returns the skewness of the values in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.skewnesswithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.skewness(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the skewness of the values in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.skewnesswithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.skewness(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: alias for {@link stddev_samp}.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.stddevwithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.stddev(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: alias for {@link stddev_samp}.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.stddevwithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.stddev(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the sample standard deviation of\r\n>>>  * the expression in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.stddev_sampwithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.stddev_samp(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the sample standard deviation of\r\n>>>  * the expression in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.stddev_sampwithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.stddev_samp(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the population standard deviation of\r\n>>>  * the expression in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.stddev_popwithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.stddev_pop(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the population standard deviation of\r\n>>>  * the expression in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.stddev_popwithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.stddev_pop(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n461a709,795\r\n>>>  * Aggregate function: alias for {@link var_samp}.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.variancewithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.variance(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: alias for {@link var_samp}.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.variancewithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.variance(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the unbiased variance of the values in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.var_sampwithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.var_samp(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the unbiased variance of the values in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.var_sampwithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.var_samp(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the population variance of the values in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.var_popwithColumn = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.var_pop(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Aggregate function: returns the population variance of the values in a group.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.var_popwithstring = function(columnName) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.var_pop(columnName);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n470,473c804\r\n<<< *\r\n<<< * This is equivalent to the CUME_DIST function in SQL.\r\n<<< *\r\n<<< * @since EclairJS 0.1 Spark  1.4.0\r\n---\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n476c807\r\n< functions.cumeDist = function() {\r\n---\r\n>>> functions.cume_dist = function() {\r\n478c809\r\n< //   var javaObject =  org.apache.spark.sql.functions.cumeDist();\r\n---\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.cume_dist();\r\n491,493c822\r\n<<< * This is equivalent to the DENSE_RANK function in SQL.\r\n<<< *\r\n<<< * @since EclairJS 0.1 Spark  1.4.0\r\n---\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n496c825\r\n< functions.denseRank = function() {\r\n---\r\n>>> functions.dense_rank = function() {\r\n498c827\r\n< //   var javaObject =  org.apache.spark.sql.functions.denseRank();\r\n---\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.dense_rank();\r\n695c1024\r\n<<< * @since EclairJS 0.1 Spark  1.4.0\r\n---\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n698c1027\r\n< functions.percentRank = function() {\r\n---\r\n>>> functions.percent_rank = function() {\r\n700c1029\r\n< //   var javaObject =  org.apache.spark.sql.functions.percentRank();\r\n---\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.percent_rank();\r\n728,730c1057\r\n<<< * This is equivalent to the ROW_NUMBER function in SQL.\r\n<<< *\r\n<<< * @since EclairJS 0.1 Spark  1.4.0\r\n---\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n733c1060\r\n< functions.rowNumber = function() {\r\n---\r\n>>> functions.row_number = function() {\r\n735c1062\r\n< //   var javaObject =  org.apache.spark.sql.functions.rowNumber();\r\n---\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.row_number();\r\n827a1155\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n830c1158\r\n< functions.inputFileName = function() {\r\n---\r\n>>> functions.input_file_name = function() {\r\n832c1160\r\n< //   var javaObject =  org.apache.spark.sql.functions.inputFileName();\r\n---\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.input_file_name();\r\n840c1168\r\n<<< * @since EclairJS 0.1 Spark  1.5.0\r\n---\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n844c1172\r\n< functions.isNaN = function(e) {\r\n---\r\n>>> functions.isnan = function(e) {\r\n847c1175,1190\r\n< //   var javaObject =  org.apache.spark.sql.functions.isNaN(e_uw);\r\n---\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.isnan(e_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Return true iff the column is null.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.isnull = function(e) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.isnull(e_uw);\r\n874a1218,1239\r\n>>>  * A column expression that generates monotonically increasing 64-bit integers.\r\n>>>  *\r\n>>>  * The generated ID is guaranteed to be monotonically increasing and unique, but not consecutive.\r\n>>>  * The current implementation puts the partition ID in the upper 31 bits, and the record number\r\n>>>  * within each partition in the lower 33 bits. The assumption is that the data frame has\r\n>>>  * less than 1 billion partitions, and each partition has less than 8 billion records.\r\n>>>  *\r\n>>>  * As an example, consider a {@link DataFrame} with two partitions, each with 3 records.\r\n>>>  * This expression would return the following IDs:\r\n>>>  * 0, 1, 2, 8589934592 (1L << 33), 8589934593, 8589934594.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.monotonically_increasing_id = function() {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.monotonically_increasing_id();\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n997c1362\r\n<<< * @since EclairJS 0.1 Spark  1.4.0\r\n---\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n1000c1365\r\n< functions.sparkPartitionId = function() {\r\n---\r\n>>> functions.spark_partition_id = function() {\r\n1002c1367\r\n< //   var javaObject =  org.apache.spark.sql.functions.sparkPartitionId();\r\n---\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.spark_partition_id();\r\n3507a3873,3906\r\n>>>  * Extracts json object from a json string based on json path specified, and returns json string\r\n>>>  * of the extracted json object. It will return null if the input json string is invalid.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @param {string}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.get_json_object = function(e,path) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var e_uw = Utils.unwrapObject(e);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.get_json_object(e_uw,path);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n>>>  * Creates a new row for a json column according to the given field names.\r\n>>>  *\r\n>>>  * @since EclairJS 0.1 Spark  1.6.0\r\n>>>  * @param {Column}\r\n>>>  * @param {<repeated>}\r\n>>>  * @returns {Column} \r\n>>>  */\r\n>>> functions.json_tuple = function(json,fields) {\r\n>>> throw \"not implemented by ElairJS\";\r\n>>> //   var json_uw = Utils.unwrapObject(json);\r\n>>> //   var fields_uw = Utils.unwrapObject(fields);\r\n>>> //   var javaObject =  org.apache.spark.sql.functions.json_tuple(json_uw,fields_uw);\r\n>>> //   return new Column(javaObject);\r\n>>> }\r\n>>> \r\n>>> \r\n>>> /**\r\n\r\n````"}}