文章目录
- Hive内置函数
 - 字符串函数
 - 时间类型函数
 - 数学函数
 - 集合函数
 - 条件函数
 - 类型转换函数
 - 数据脱敏函数
 - 其他函数
 - 用户自定义函数
 
 
 
Hive内置函数
 
 
DESCRIBE FUNCTION EXTENDED 函数名;
 
字符串函数
 
- 字符串连接函数:concat
 - 带分隔符字符串连接函数:concat_ws
 - 字符串截取函数:substr或substring
 - 正则表达式替代函数:regexp_replace
 - 正则表达式解析函数:regexp_extract
 - URL解析函数:parse_url
 - json解析函数:get_json_object
 - 分割字符串函数:split(可以用正则表达式匹配)
 
 
时间类型函数
 
- 获取当前日期:current_date
 - 获取当前UNIX时间戳:current_timestamp
 - 日期转UNIX时间戳:unix_timestamp
 - UNIX时间戳转日期:from_unixtime
 - 日期比较:datediff
 - 增加日期:date_add
 - 减少日期:date_sub
 - 抽取日期:to_date
 - 日期提取年:year(其他级别日期提取方法相同)
 
 
数学函数
 
- 取整:round
 - 向下取整:floor
 - 向上取整:ceil
 - 取随机数:rand
 - 取二进制数:bin
 - 取绝对值:abs
 
 
集合函数
 
- 计算集合大小:size
 - 取集合的keys:map_keys
 - 取集合values:map_vaclues
 - 判断数组是否包含指定元素:array_contains
 - 数组排序:sort_array
 
 
条件函数
 
- 条件判断:if
 - 空判断:isnull
 - 非空判断:isnotnull
 - 空值转换:nvl
 - 非空查找:COALESCE
 - 条件转换函数:CASE a WHEN b THEN c [ELSE d] END
 - 若相等则返回空,不等返回第一个:nullif(a,b)
 - 如果condition不为真,则异常,否则返回null:assert_true(condition)
 
 
类型转换函数
 
 
数据脱敏函数
 
- 将查询返回的数据,大写字母转换为X,小写字母转换为x,数字转换为n:mask(也可以自定义替换的字母)
 - 对前n个进行脱敏替换:mask_first_n
 - 对后n个进行脱敏替换:mask_last_n
 - 除了前n个字符,其余进行掩码处理:mask_show_first_n
 - 除了后n个字符,其余进行掩码处理:mask_show_last_n
 - 返回字符串的hash编码:mask_hash
 
 
其他函数
 
- 调用java方法:java_method(如果jar包不是hive自带的,可以用add jar添加进来)
 - 反射函数:reflect
 - 取哈希值:hash
 - SHA-2家族算法加密:sha2
 - crc32加密:crc32
 - MD5加密:md5
 
 
用户自定义函数
 
- 用户自定义函数简称UDF
 - 根据函数输入输出行数可以分为3类:
 
 
- UDF:普通函数,一进一出(round)
 - UDAF:聚合函数,多进一出(sum)
 - UDTF:表生成函数,一进多出(explode)