李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
15.Hive常用内置函数总结
Leefs
2021-12-09 PM
1051℃
0条
[TOC] ### 一、查询系统内置函数 **1.1 查看系统自带的函数** ```sql show functions; ``` **1.2 显示自带的函数的用法** **语法** > desc function 【函数名称】; ```sql -- 查询upper函数用法 0: jdbc:hive2://hadoop001:10000> desc function upper; -- 运行结果 +----------------------------------------------------+ | tab_name | +----------------------------------------------------+ | upper(str) - Returns str with all characters changed to uppercase | +----------------------------------------------------+ ``` **1.3 详细显示自带的函数的用法** **语法** > desc function extended 【函数名称】; ```sql -- 查询upper的具体用法 0: jdbc:hive2://hadoop001:10000> desc function extended upper; -- 查询结果 +----------------------------------------------------+ | tab_name | +----------------------------------------------------+ | upper(str) - Returns str with all characters changed to uppercase | | Synonyms: ucase | | Example: | | > SELECT upper('Facebook') FROM src LIMIT 1; | | 'FACEBOOK' | | Function class:org.apache.hadoop.hive.ql.udf.generic.GenericUDFUpper | | Function type:BUILTIN | +----------------------------------------------------+ ``` ### 二、常用内置函数 + ##### **字符函数** | 函数名称 | 返回值类型 | 说明 | | ------------------------------------------------------------ | ---------- | ------------------------------------------------------------ | | `concat(string A, string B…)` | string | 用于拼接字符串,返回输入字符串连接后的结果,支持任意个输入字符串 | | `concat_ws(string SEP, string A, string B…)` | string | 返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符 | | `instr(string str,string substr)` | int | 返回子字符串 substr在 str中的位置,若不存在则返回 0 | | `length(string str)` | int | 返回字符串长度 | | `locate(string substr,string str, int pos)` | int | 返回位置`pos`之后`str`中第一次出现`substr`的位置 | | `lower(string str) /lcase(string str)` | string | 将字符串中的所有字母转换成小写字母 | | `ucase(string str) /upper(string str)` | string | 将字符串中的所有字母转换成大写字母 | | `regexp_replace(string x,string y,string z)` | string | 替换字符串中的指定字段
第一个参数 x 为字符串
第二个参数 y 为需要替换的字符
第三个参数 z 为替换成的字符 | | `split(string str,string x)` | array | 以指定的 x 为分隔符切割字符串 | | `substr(string A, int start), substring(string A, int start)` | string | 返回字符串A从start位置到结尾的字符串 | | `substr(string A, int start, int len),substring(string A, int start, int len)` | string | 返回字符串A从start位置开始,长度为len的字符串 | | trim(string str) | string | 去掉字符串前后的空格 | | `str_to_map(string text,string delimiter1,string delimiter2)` | map | 将字符串text按照指定分隔符转换成Map | | `space(int n)` | string | 返回长度为n的字符串 | | `repeat(string str, int n)` | string | 返回重复n次后的str字符串 | | `lpad(string str, int len, string pad)` | string | 左补足函数,将str用pad进行左补足到len位 | | `rpad(string str, int len, string pad)` | string | 右补足函数,将str用pad进行右补足到len位 | | `find_in_set(string str, string strList)` | int | 集合查找函数,返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0 | | `regexp_extract(string subject, string pattern, int index)` | string | 正则表达式解析函数,将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。注意,在有些情况下要使用转义字符 | | `parse_url(url, partToExtract[, key])` | string | 解析URL字符串,`partToExtract`的选项包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO] | | get_json_object(string json_string, string path) | string | 解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。 | + ##### **类型转换函数** | 函数名称 | 返回值类型 | 说明 | | -------------------- | ------------ | ------------------------ | | `cast(expr as type)` | type类型数据 | 将 expr 转换成 type 类型 | | `binary(string str)` | binary | 将输入的值转换成二进制 | + **数学函数** | 函数名称 | 返回类型 | 说明 | | ---------------------------------- | -------- | ------------------------------------------------------------ | | `round(double a)` | BIGINT | 取整函数,返回double类型的整数值部分 (遵循四舍五入) | | round(double a, int d) | DOUBLE | 返回指定精度d的double类型 | | `ceil(double a)/ceiling(double a)` | BIGINT | 向上取整函数,返回等于或者大于该double变量的最小的整数 | | `floor(double a)` | BIGINT | 向下取整函数,返回等于或者小于该double变量的最大的整数 | | `rand(), rand(int seed)` | double | 取随机数函数,返回一个0到1范围内的随机数。如果指定种子seed,则会等到一个稳定的随机数序列。 | | `power(double a,int n)` | double | 求指定 a 的 n 次方 | | `abs(double a)` | double | 求 a 的绝对值 | + ##### **日期函数** | 函数名称 | 返回类型 | 说明 | | --------------------------------------------------- | --------- | ------------------------------------------------------------ | | `from_unixtime(bigint unixtime, string format)` | string | 将时间戳转换成format格式,时间格式可选,不选则为默认时间格式 | | `unix_timestamp()` | bigint | 获得当前时区的UNIX时间戳 | | `unix_timestamp(string date)` | bigint | 转换格式为"`yyyy-MM-dd HH:mm:ss`"的日期到UNIX时间戳。如果转化失败,则返回0。 | | `unix_timestamp(string date, string pattern)` | bigint | 转换pattern格式的日期到UNIX时间戳。如果转化失败,则返回0。 | | `to_date(string datetime)` | string | 日期时间转日期函数,返回日期时间字段中的日期部分 | | `year(string date)` | int | 日期转年函数,返回日期中的年 | | `month (string date)` | int | 日期转月函数,返回date或`datetime`中的月份 | | `day (string date)` | int | 日期转天函数,返回日期中的天 | | `hour(string date)` | int | 日期转小时函数,返回日期中的小时 | | `minute (string date)` | int | 日期转分钟函数,返回日期中的分钟 | | `second(string date)` | int | 日期转秒函数,返回时间字符串中的秒数 | | `weekofyear(string date)` | int | 日期转周函数,返回日期在当前的周数 | | `datediff(string enddate, string startdate)` | int | 日期比较函数,返回结束日期减去开始日期的天数 | | `date_add(string startdate, int days)` | string | 日期增加函数,返回开始日期startdate增加days天后的日期 | | `date_sub (string startdate, int days)` | string | 日期减少函数,返回开始日期startdate减少days天后的日期 | | `current_timestamp()` | timestamp | 返回当前时间,精确到毫秒 | | `current_date()` | date | 返回当前时间的日期 | | `date_format(date/timestamp/string ts, string fmt)` | string | 按指定格式返回时间date | + ##### **集合函数** | 函数名称 | 返回类型 | 说明 | | --------------------------------------- | ---------- | --------------------------- | | `size(Map
map)` | int | 返回 map 中键值对个数 | | `size(Array
array)` | int | 返回数组的元素数量 | | `map_keys(Map
map)` | array<`k`> | 返回 map 中的所有 key | | `map_values(Map
map)` | array<`V`> | 返回 map 中的所有 values | | `array_contains(Array
array, value)` | boolean | 判断array中是否包含某个元素 | | `sort_array(Array
array)` | array | 对数组进行正序排序 | + ##### 条件函数 | **函数** | **说明** | | --------------- | ------------------------------------------------- | | `if(x, y, z)` | 如果条件 x 为结果 true 就返回 x,否则返回 y | | `case when` | 类似于 java 中的 switch | | `isnull(x)` | 如果 x 为 null 就返回 true,否则返回 false | | `isnotnull (x)` | 如果 x 为非 null 就返回 true,否则返回 false | | `nvl(x,y)` | 将 x 替换为 y | | `coalesce` | 返回第一非null的值,如果全部都为 null 就返回 null |
标签:
Hadoop
,
Hive
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1736.html
上一篇
14.Hive分桶表详细介绍
下一篇
16.Hive常用内置函数示例
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
Eclipse
Jquery
Livy
排序
MyBatis-Plus
JavaWEB项目搭建
人工智能
SpringCloud
SQL练习题
二叉树
Redis
Golang基础
随笔
ClickHouse
高并发
数据结构和算法
哈希表
机器学习
nginx
FileBeat
Shiro
MySQL
Flume
栈
设计模式
Python
Tomcat
Java
VUE
递归
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞