首页 > 其他 > 详细

hive常用函数

时间:2015-05-29 02:10:05      阅读:254      评论:0      收藏:0      [点我收藏+]

字符串函数

字符串长度函数:length

?

Java代码??bubuko.com,布布扣
  1. 语法:?length(string?A)??
  2. 返回值:?int??
  3. 说明:返回字符串A的长度??
  4. 举例:??
  5. hive>?select?length(‘abcedfg’)?from?dual;??
  6. 7??

?

?

?

字符串反转函数:reverse

?

Java代码??bubuko.com,布布扣
  1. 语法:?reverse(string?A)??
  2. 返回值:?string??
  3. 说明:返回字符串A的反转结果??
  4. 举例:??
  5. hive>?select?reverse(‘abcedfg’)?from?dual;??
  6. gfdecba??

?

?

?

字符串连接函数:concat

?

Java代码??bubuko.com,布布扣
  1. 语法:?concat(string?A,?string?B…)??
  2. 返回值:?string??
  3. 说明:返回输入字符串连接后的结果,支持任意个输入字符串??
  4. 举例:??
  5. hive>?select?concat(‘abc’,‘def’,‘gh’)?from?dual;??
  6. abcdefgh??

?

?

?

?

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

?

Java代码??bubuko.com,布布扣
  1. 语法:?concat_ws(string?SEP,?string?A,?string?B…)??
  2. 返回值:?string??
  3. 说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符??
  4. 举例:??
  5. hive>?select?concat_ws(‘,’,‘abc’,‘def’,‘gh’)?from?dual;??
  6. abc,def,gh??

?

?

?

?

字符串截取函数:substr,substring

?

Java代码??bubuko.com,布布扣
  1. 语法:?substr(string?A,?int?start),substring(string?A,?int?start)??
  2. 返回值:?string??
  3. 说明:返回字符串A从start位置到结尾的字符串??
  4. 举例:??
  5. hive>?select?substr(‘abcde’,3)?from?dual;??
  6. cde??
  7. hive>?select?substring(‘abcde’,3)?from?dual;??
  8. cde??
  9. hive>??select?substr(‘abcde’,-1)?from?dual;??(和ORACLE相同)??
  10. e??

?

?

?

字符串截取函数:substr,substring

?

Java代码??bubuko.com,布布扣
  1. 语法:?substr(string?A,?int?start,?int?len),substring(string?A,?int?start,?int?len)??
  2. 返回值:?string??
  3. 说明:返回字符串A从start位置开始,长度为len的字符串??
  4. 举例:??
  5. hive>?select?substr(‘abcde’,3,2)?from?dual;??
  6. cd??
  7. hive>?select?substring(‘abcde’,3,2)?from?dual;??
  8. cd??
  9. hive>select?substring(‘abcde’,-2,2)?from?dual;??
  10. de??

?

?

?

?

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

?

Java代码??bubuko.com,布布扣
  1. 语法:?upper(string?A)?ucase(string?A)??
  2. 返回值:?string??
  3. 说明:返回字符串A的大写格式??
  4. 举例:??
  5. hive>?select?upper(‘abSEd’)?from?dual;??
  6. ABSED??
  7. hive>?select?ucase(‘abSEd’)?from?dual;??
  8. ABSED??

?

?

?

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

?

Java代码??bubuko.com,布布扣
  1. 语法:?lower(string?A)?lcase(string?A)??
  2. 返回值:?string??
  3. 说明:返回字符串A的小写格式??
  4. 举例:??
  5. hive>?select?lower(‘abSEd’)?from?dual;??
  6. absed??
  7. hive>?select?lcase(‘abSEd’)?from?dual;??
  8. absed??

?

?

?

?

去空格函数:trim

?

Java代码??bubuko.com,布布扣
  1. 语法:?trim(string?A)??
  2. 返回值:?string??
  3. 说明:去除字符串两边的空格??
  4. 举例:??
  5. hive>?select?trim(‘?abc?‘)?from?dual;??
  6. abc??

?

?

左边去空格函数:ltrim

?

Java代码??bubuko.com,布布扣
  1. 语法:?ltrim(string?A)??
  2. 返回值:?string??
  3. 说明:去除字符串左边的空格??
  4. 举例:??
  5. hive>?select?ltrim(‘?abc?‘)?from?dual;??
  6. abc??

?

?

右边去空格函数:rtrim

?

Java代码??bubuko.com,布布扣
  1. 语法:?rtrim(string?A)??
  2. 返回值:?string??
  3. 说明:去除字符串右边的空格??
  4. 举例:??
  5. hive>?select?rtrim(‘?abc?‘)?from?dual;??
  6. abc??

?

?

?

?

?

正则表达式解析函数:regexp_extract

其中的index,是按照正则字符串()的位置

?

Java代码??bubuko.com,布布扣
  1. 语法:?regexp_extract(string?subject,?string?pattern,?int?index)??
  2. 返回值:?string??
  3. 说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。注意,在有些情况下要使用转义字符??
  4. 举例:??
  5. hive>?select?regexp_extract(‘foothebar’,?‘foo(.*?)(bar)’,?1)?from?dual;??
  6. the??
  7. hive>?select?regexp_extract(‘foothebar’,?‘foo(.*?)(bar)’,?2)?from?dual;??
  8. bar??
  9. hive>?select?regexp_extract(‘foothebar’,?‘foo(.*?)(bar)’,?0)?from?dual;??
  10. foothebar??

?

?

?

?

?

函数parse_url,解析URL字符串

?

Java代码??bubuko.com,布布扣
  1. parse_url(url,?partToExtract[,?key])?-?extracts?a?part?from?a?URL??
  2. 解析URL字符串,partToExtract的选项包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]。??
  3. ??
  4. 举例:??
  5. *?parse_url(‘http://facebook.com/path/p1.php?query=1‘,?‘HOST‘)返回‘facebook.com‘???
  6. *?parse_url(‘http://facebook.com/path/p1.php?query=1‘,?‘PATH‘)返回‘/path/p1.php‘???
  7. *?parse_url(‘http://facebook.com/path/p1.php?query=1‘,?‘QUERY‘)返回‘query=1‘,??
  8. 可以指定key来返回特定参数,例如??
  9. *?parse_url(‘http://facebook.com/path/p1.php?query=1‘,?‘QUERY‘,‘query‘)返回‘1‘,??
  10. ??
  11. *?parse_url(‘http://facebook.com/path/p1.php?query=1#Ref‘,?‘REF‘)返回‘Ref‘???
  12. *?parse_url(‘http://facebook.com/path/p1.php?query=1#Ref‘,?‘PROTOCOL‘)返回‘http‘??

?

json解析函数:get_json_object

语法: get_json_object(string json_string, string path)

Java代码??bubuko.com,布布扣
  1. 返回值:?string??
  2. 说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。??
  3. 举例:??
  4. hive>?select??get_json_object(‘{“store”:??
  5. >???{“fruit”:\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],??
  6. >????“bicycle”:{“price”:19.95,”color”:”red”}??
  7. >???},??
  8. >??“email”:”amy@only_for_json_udf_test.net”,??
  9. >??“owner”:”amy”??
  10. >?}??
  11. >?‘,’$.owner’)?from?dual;??
  12. amy??

?使用实例:

?

Java代码??bubuko.com,布布扣
  1. select?get_json_object(‘{"store":{"fruit":\["aa","bb","cc"]},"owner":"amy"}‘,‘$.store.fruit[0]‘)?from?test_msg?limit?1;??

?

?

空格字符串函数:space

语法: space(int n)

Java代码??bubuko.com,布布扣
  1. 返回值:?string??
  2. 说明:返回长度为n的字符串??
  3. 举例:??
  4. hive>?select?space(10)?from?dual;??
  5. hive>?select?length(space(10))?from?dual;??
  6. 10??

?

?

重复字符串函数:repeat

语法: repeat(string str, int n)

Java代码??bubuko.com,布布扣
  1. 返回值:?string??
  2. 说明:返回重复n次后的str字符串??
  3. 举例:??
  4. hive>?select?repeat(‘abc’,5)?from?dual;??
  5. abcabcabcabcabc??

?

?

首字符ascii函数:ascii

语法: ascii(string str)

Java代码??bubuko.com,布布扣
  1. 返回值:?int??
  2. 说明:返回字符串str第一个字符的ascii码??
  3. 举例:??
  4. hive>?select?ascii(‘abcde’)?from?dual;??
  5. 97??

?

?

左补足函数:lpad

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

Java代码??bubuko.com,布布扣
  1. 返回值:?string??
  2. 说明:将str进行用pad进行左补足到len位??
  3. 举例:??
  4. hive>?select?lpad(‘abc’,10,’td’)?from?dual;??
  5. tdtdtdtabc??

?

?

与GP,ORACLE不同,pad 不能默认

右补足函数:rpad

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

Java代码??bubuko.com,布布扣
  1. 返回值:?string??
  2. 说明:将str进行用pad进行右补足到len位??
  3. 举例:??
  4. hive>?select?rpad(‘abc’,10,’td’)?from?dual;??
  5. abctdtdtdt??

?

?

分割字符串函数: split

语法: ?split(string str, string pat)

Java代码??bubuko.com,布布扣
  1. 返回值:??array??
  2. 说明:?按照pat字符串分割str,会返回分割后的字符串数组??
  3. 举例:??
  4. hive>?select?split(‘abtcdtef’,‘t’)?from?dual;??
  5. ["ab","cd","ef"]??

?

?

?

集合查找函数: find_in_set

语法: find_in_set(string str, string strList)

Java代码??bubuko.com,布布扣
  1. 返回值:?int??
  2. 说明:?返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0??
  3. 举例:??
  4. hive>?select?find_in_set(‘ab’,‘ef,ab,de’)?from?dual;??
  5. 2??
  6. hive>?select?find_in_set(‘at’,‘ef,ab,de’)?from?dual;??
  7. 0??

?

hive常用函数

原文:http://mntms.iteye.com/blog/2214981

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!