文章目录 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)