Hive函数

常用函数:

  • 转码:
select encode('你好','utf8');
select decode(encode('你好','utf16'),'utf16');
  • 分别展示字符串:
select explode(array('abc','def','gh'));//输出结果为abc def ghselect
select explode(jands) from employee;
  • 根据第一个字符链接起来:
select concat_ws(str string,a string,b string,...)
select concat_ws('-','a','b','c');//输出a-b-c
  • 返回第n个参数,若n<1或n>参数的个数则返回null
select elt(N int,str1 string,str2 string,...)
select elt(4,'a','b','c','d');//输出d
  • 返回结果,若值为null或未找到则返回0
select field(val T,val1 T,val2 T,...)
select field(10,1,3,4,5,6,10,12);//输出结果为6
  • 返回str在strList中的位置
select find_in_set(str string,strList string)
select find_in_set('and','Melon,and,fruit,fields');//输出结果为2
select find_in_set('And','Melon,and,fruit,fields');//输出结果为0
select find_in_set('and,','Melon,and,fruit,fields');//输出结果为0
select find_in_set(NULL,'Melon,and,fruit,fields');//输出结果为null
  • 格式化数字x为包含d位小数,四舍五入
select format_number(number x,int d)
select format_number(1234.14,1);//输出结果1234.1
select format_number(1234.16,1);//输出结果1234.2
  • 返回字符串长度
select length(string A)
  • 反转字符串
select reverse(string A)
select reverse('abcd');//输出dcba
  • 左右填充和左右去空格
select lpad/rpad(string str,int length,string pad)
select ltrim/rtrim(string A)
  • 返回当前时间的日期
select current_date;
  • 对数组进行排序
select sort_array(Array<T>)
  • 转型
select cast(列名 as 新类型)

字符函数:

返回值函数描述
stringconcat(string|binary A, string|binary B...)对二进制字节码或字符串按次序进行拼接
intinstr(string str, string substr)查找字符串str中子字符串substr出现的位置
intlength(string A)返回字符串的长度
intlocate(string substr, string str[, int pos])查找字符串str中的pos位置后字符串substr第一次出现的位置
stringregexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)按正则表达式PATTERN将字符串中符合条件的部分替换成REPLACEMENT所指定的字符串
stringlower(string A) /upper(string A)将字符串A的所有字母转换成小写/大写字母
arraysplit(string str, string pat)按照正则表达式pat来分割字符串str
string
substr(string|binary A, int start, int len)
substring(string|binary A, int start, int len)
对字符串A,从start位置开始截取长度为len的字符串并返回
stringtrim(string A)将字符串A前后出现的空格去掉
mapstr_to_map(text[, delimiter1, delimiter2])将字符串str按照指定分隔符转换成Map
binaryencode(string src, string charset)用指定字符集charset将字符串编码成二进制值

集合函数:

返回值函数描述
intsize(Map(K,V))返回map中键值对个数
intsize(Array)返回数组的长度
array(K)map_keys(Map(K,V))返回map中的所有key
array(V)map_values(Map(K,V))返回map中的所有value
booleanarray_contains(Array, value)如该数组Array包含value返回true,否则返回false
arraysort_array(Array)对数组进行排序

jar包:

  • 临时jar
add jar jar包全路径;
create temporary function 方法名 as 'jar包方法来源的类名';
select 方法名('asdadadnadiw');
desc function abs;
  • 永久jar
create function timeDiff as 'cn.kgc.kb11.udf.TimeDiff'
	using jar 'hdfs:///hive/jars/Hive-maven-1.0-SNAPSHOT.jar';
select timeDiff("2021-04-06 12:23:54","2023-04-01 10:20:25",5);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值