hive常用字符串处理函数

3 篇文章 0 订阅

以下的字符串都可以用字段名表示,顺序索引,从1开始,逆序索引,从-1开始

1.字符串长度:length

语法:length(string A)

返回值:int(字符串A的长度)

hive> select length('abcde') from table_name;

return:5

select length(gid) from db_name.table_name group by length(gid);

2.字符串反转函数:reverse

语法:reverse(string A)

返回值:string(返回字符串A的反转结果)

hive> select reverse('abcde') from table_name;

return : edcba

3.字符串连接函数:concat

语法:concat(string A, string B,...)

返回值:string 返回输入字符串连接后的结果,支持任意个输入字符串

hive> select concat('abc', 'def', 'gh') from table_name

return : abcdefgh

4.带分隔符字符串连接函数:concat_ws

语法:concat_ws(string sep, string A, string B,...)

返回值:string 返回字符串连接后的结果,sep表示各个字符串间的分隔符

hive> select concat_ws(',', 'abc', 'def', 'gh') from table_name;

return : abc,def,gh

5.字符串截取函数:substr,substring

语法:substr(string A, int start)   substring(string A, int start)

返回值:string 返回字符串A从start位置到结尾的字符串

hive> select substr('abcdef', 3) from table_name;

return : cdef

hive> select substring('abcdef', 3) from table_name;

return : cdef

hive> select substr('abcdef', -1) from table_name;

return : f

6.字符串截取函数:substr, substring

语法:substr(string A, int start, int len),  substring(string A, int start, int len)

返回值:string 返回字符串A从start位置到结尾的字符串

hive> select substr('abcdef', 3, 2) from table_name;

return : cd

hive> select substring('abcdef', 3, 2) from table_name;

return : cd

hive> select substr('abcdef', -3, 2) from table_name;

return : de

7. 字符串转大写函数:upper, ucase

语法:upper(string A), ucase(string A)

返回值:string 返回字符串A的大写格式

hive> select upper('abCDe') from table_name;

return : ABCDE

hive> select ucase('abCDe') from table_name;

return : ABCDE

8. 字符串转小写函数:lower, lcase

语法:lower(string A), lcase(string A)

返回值:string 返回字符串A的小写格式

hive> select lower('abCDe') from table_name;

return : abcde

hive> select lcase('abCDe') from table_name;

return : abcde

9.去字符串两边空格:trim

语法:trim(string A)

返回值:string 去除字符串两边的空格

hive> select trim(' abc ') from table_name;

return : abc

10.去除字符串左边空格:ltrim

hive> select ltrim(' abc ') from table_name;

return : abc

11.去除字符串右边空格:rtrim

hive> select rtrim(' abc ') from table_name;

return :  abc

12.正则表达式替换函数:regexp_replace

语法:regexp_replace(string A, string B, string C)

返回值:string 将字符串A中符合java正则表达式B的部分替换成C。

hive> select regexp_replace('foobar', 'oo|ar', '') from table_name;

return : fb

13.正则表达式解析函数:regexp_extract

语法:regexp_extract(string subject, string pattern, int index)

返回值:string, 将字符串subject 按照正则表达式的规则拆分,返回index指定的字符串

hive> select regexp_extract('foothebar', 'foo(.*?)(bar)', 1) from lxw_dual;
return : the
hive> select regexp_extract('foothebar', 'foo(.*?)(bar)', 2) from lxw_dual;
return : bar
hive> select regexp_extract('foothebar', 'foo(.*?)(bar)', 0) from lxw_dual;
return : foothebar

14.URL解析函数:parse_url

语法:parse_url(string urlstring, string partToExtract [, string keyToExtract])

返回值:string 返回URL中指定的部分。partToExtract 的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO.

hive> select parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST') from lxw_dual;
return : facebook.com
hive> select parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1') from lxw_dual;
return : v1

15.json解析函数:get_json_object

语法:get_json_object(string json_string, string path)

返回值:string 解析json字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL.

hive> select get_json_object('{"store":{"fruit":\[{"weight":8, "type":"apply"}, {"weight":9, "type":"pear"}],

                                                 "bicycle":{"price":19.95, "color":"red"}},

                                                 "email":"amy@only_for_json_udf_test.net",

                                                 "owner":"amy"}', '$.woner') from table_name;

return : amy

16.空格字符串函数:space

语法:space(int n)

返回值:string 返回长度为n的空字符串

hive> select space(10) from table_name;

hive> select length(space(10)) from table_name;

return : 10

17.重复字符串函数:repeat

语法:repeat(string str, int n)

返回值:string  返回重复n次后的str字符串

hive> select repeat('a', 3) from table_name;

return : aaa

18.首字符的ascii值:ascii

语法:ascii(string str)

返回值:int  返回字符串str第一个字符的ascii码对应的数值

hive> select ascii('abc') from table_name;

return : 97

19.左补足函数:lpad(常用来补足长度不足的字符串,然后进行截取)

语法:lpad(string str, int len, string pad)

返回值:string  将str进行用pad做左补足到len位

hive> select lpad('abc', 10, 'td') from table_name;

return : tdtdtdtabc

20.右补足函数:rpad

语法:rpad(string str, int len, string pad)

返回值:string  将str进行用pad做右补足到len位

hive> select rpad('abc', 10, 'td') from table_name;

return : abctdtdtdt

21.分割字符串函数:split

语法:split(string str, string pat) # 如果能限制一下分割的次数就完美了。。。

返回值:array 按照pat字符串分割str,返回分割后的字符串数组

hive> select split('abtcdtef', 't') from table_name;

return : ['ab', 'cd', 'ef']

22.集合查找函数:find_in_set

语法:find_in_set(string str, string strList)

返回值:int 返回str在strList第一次出现的位置,strList是用逗号分割的字符串。如果没有找到该str字符,则返回0

hive> select find_in_set('ab', 'ef,ab,de') from table_name;

return : 2

hive> select find_in_set('at', 'ef,ab,de') from table_name;

return : 0

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值