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)