设置2个reducer,可以看到结果并不是从大到小排列的。
设置1个reducer,此时与ORDER BY结果相同!
汇总函数:这些方法主要用于对复杂类型进行size、key、value等的查询,如SIZE(Array
类型转换函数:这些方法主要用于对数据类型进行转换,如CAST和BINARY.
日期函数:用于对日期相关进行操作,如YEAR(string date)和MONTH(string date).
条件函数:用于返回特定条件过滤后的函数,如COALESCE、IF、和CASE WHEN.
字符串函数:此类函数主要用于字符串相关操作,如UPPER(string A) 和TRIM(string A).
聚合函数:此类函数主要用于数据聚合,如SUM(),COUNT(*).
列表生成函数:此类函数主要用于将单行输入转换为多行输出,如EXPLODE(MAP)和JSON_TUPLE(jsonString, k1, k2, ...).
自定义函数:此类由Java生成的函数作为Hive的扩展函数对Hive功能进行扩展.
可以在Hive CLI使用以下语句进行Hive内建函数查询: SHOW FUNCTIONS; //列出Hive所有函数 DESCRIBE FUNCTION
详细样例:
1. 复杂数据类型函数提示:SIZE函数用于计算MAP、ARRAY或嵌套MAP/ARRAY。如果size未知则返回-1.
例: hive> SELECT work_place, skills_socre, depart_title FROM employee;
例: hive> SELECT SIZE(work_place) AS array_size, SIZE(skills_score) AS map_size, SIZE(depart_title) AS complex_size, SIZE(depart_title["Product"]) AS nest_size FROM employee;
ARRAY_CONTAINS声明用于使用TRUE或FALSE返回值检验指定列是否包含指定值。SORT_ARRAY声明用于对数组进行升序排序。
例: hive> SELECT ARRAY_CONTAINS(work_place, 'Toronto') AS is_Toronto, SORT_ARRAY(work_place) AS sorted_array FROM employee;
2. 日期函数提示:FROM_UNIXTIME(UNIX_TIMESTAMP())声明与Oracle中的SYSDATE函数相同,动态返回Hive服务器的当前时间。
例: hive> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()) AS current_time FROM employee limit 1;
TO_DATE用于将获取的系统时间截取日期
例: hive> SELECT TO_DATE(FROM_UNIXTIME(UNIX_TIMES