hive函数大全+详情

hive函数分类

在这里插入图片描述

运算符

运算符含义实例结果
!非,类似notselect !trueFALSE
!=不等于,类似<>select 1!=2TRUE
%取余,返回a除以b的余数select 40%31
&位与操作,返回a和b按位进行与操作的结果select 3&502
*乘法select 2*36
+加法select 2+46
-减法select 2-5-3
/除,返回a除以b的结果,最好通过round指定精度select 2/6 select round(2/6,2)0.3333333333 0.33
<小于select 1<2TRUE
<=小于等于select 1<=2TRUE
<=>完全等于,严格比较两个null值是否相等select 1<=>2FALSE
<>不等于select 1<>2TRUE
=等于select 1=2FALSE
==等于select ‘a’==‘a’TRUE
>大于select 1>2FALSE
>=大于等于select 1>=2FALSE
^运算符查看两个参数的二进制表示法的值,并执行按位”异或”操作select 5^129
I运算符查看两个参数的二进制表示法的值,并执行按位”或”操作select 59
~对一个表达式执行按位”非”(取反)~1-2
not逻辑否
or逻辑或
and逻辑与

数值计算函数

函数名含义实例结果
round取整函数,返回double类型的整数值部分 (遵循四舍五入)select round(3.5);4
round指定精度取整函数,返回指定精度d的double类型select round(3.1415926,4);3.1416
floor向下取整函数,返回等于或者小于该double变量的最大的整数select floor(3.14) ;3
ceil向上取整函数,返回等于或者大于该double变量的最小的整数select ceil(6.1);7
ceiling向上取整函数,与ceil功能相同select ceil(3.1) from dual;4
rand取随机数函数,返回一个0到1范围内的随机数select rand() from dual;0.1828459
exp自然指数函数,返回自然对数e的a次方select exp(1) from dual;2.718281828459
log10返回以10为底的对数select log10(100)2.0
log2返回以2为底的对数select log2(16)4
log返回以具体数值为底的对数select log(4,256)4.0
pow幂函数select pow(2,3)8
power幂函数select pow(2,5)32
sqrt开平方函数select sqrt(9)3
bin二进制函数select bin(4)100
hex十六进制函数select hex(17)11
unhex反转十六进制函数select unhex(‘616263’)abc
conv进制转换函数conv(BIGINT num, int from_base, int to_base)select conv(17,10,2)10001
abs绝对值函数select abs(-1.2)1.2
pmod正取余函数, pmod(int a, int b),返回正的a除以b的余数select pmod(9,4)1
sin正弦函数
asin反正弦函数
cos余弦函数
acos反余弦函数
positive返回数值本身select positive(-9)-9
negative取相反数select negative(-1)1

汇总统计函数

函数名含义实例结果
count个数统计函数select count(*)
sum总和统计函数:select sum(数值字段)
avg平均值统计函数select avg(数值字段)
min最小值统计函数select min(数值字段)
max最大值统计函数select max(数值字段)
var_pop非空集合总体变量函数统计结果集中col非空集合的总体变量
var_samp非空集合样本变量函数统计结果集中col非空集合的样本变量
stddev_pop总体标准偏离函数
stddev_samp样本标准偏离函数
percentile中位数函数
percentile_approx近似中位数函数percentile_approx(DOUBLE col, p [, B])求近似的第pth个百分位数,p必须介于0和1之间
histogram_numeric近似中位数函数percentile_approx(DOUBLE col, array(p1 [,p2]…) [,B])可以输入多个百分位数,返回类型也为array
histogram_numeric直方图select histogram_numeric(100,5)[{“x”:100.0,“y”:1.0}]
collect_set集合去重数collect_set (rst)rst字段进行合并成一个数组,去重
collect_list集合不去重函数 collect_list (rst)将 rst字段合并成一个数组,不去重

类型转换函数

函数名含义实例结果
cast指定类型转换cast(“12345” as int)string"12345",转成int12345

日期函数

函数名含义实例结果
current_date()确认当前日期select current_date()2020-08-29
from_unixtimeUNIX时间戳转日期函数select from_unixtime(1323308943,‘yyyyMMdd’)20111208
unix_timestamp获取当前UNIX时间戳函数select unix_timestamp()1323423425
unix_timestamp日期转UNIX时间戳函数select unix_timestamp(‘2020-8-29 13:01:03’)1598720463
unix_timestamp指定格式日期转UNIX时间戳函数select unix_timestamp(‘20111207 13:01:03’,‘yyyyMMdd HH:mm:ss’)1323280863
to_date日期时间转日期函数: to_dateselect to_date(‘2020-8-29 09:30:29’)2020-8-29
year日期转年函数select year(‘2020-8-29 09:30:29’)2020
month日期转月函数select month(‘2020-8-29 09:30:29’)8
day日期转天函数select day(‘2020-8-29 09:30:29’)29
hour日期转小时函数select hour(‘2020-8-29 09:30:29’)9
minute日期转分钟函数select minute(‘2020-8-29 09:30:29’)30
second日期转秒函数select second (‘2020-8-29 09:30:29’)29
weekofyear日期转周函数select weekofyear(‘2020-8-29 09:30:29’)35
datediff日期比较函数select datediff(‘2020-8-29’,‘2020-08-09’)20
date_add日期增加函数select date_add(‘2020-8-29’,1)2020-8-30
date_sub日期减少函数select date_sub(‘2020-8-29’,1)2020-8-28
months_between返回date1和date2之间的月数select months_between(‘2020-01-01’,‘2020-02-01’)1

条件函数

函数名含义实例结果
ifif条件判断,类似于三元表达式if( 1 is null,‘a’,‘b’ )b
coalesce非空查找函数,返回第一非null的值coalesce(null,1,2)1
case条件判断函数case a when b then c [when d then e] [else f] END如果a=b就返回c,a=d就返回e,否则返回f
case条件判断函数case when a then b [when c then d] [else e] END如果a=ture就返回b,c= ture就返回d,否则返回e
isnull是否为空isnull( a )如果a为null就返回true,否则返回false
isnotnull是否不为空isnotnull ( a )如果a为非null就返回true,否则返回false
nvlnvl(T value, T default_value)如果value值为NULL就返回default_value,否则返回value

字符串函数

函数名含义实例结果
ascii返回字符串第一个字符的ascii码select ascii(‘abc’)97
base64
concat字符串连接函数select concat(‘ab’,‘c’,‘d’)abcd
concat_ws带分隔符字符串连接函数select concat(’.’,‘ab’,‘c’,‘d’)ab.c.d
format_number将数字X格式化为’#,###,###。##'等格式SELECT format_number(12332.123456,4)‘12,332.1235’
substr字符串截取函数select substr(‘abcde’,3) :select substr(‘abcde’,3,2)cde:cd
substring字符串截取函数select substring(‘abcde’,3)cde
instr返回str中第一次出现substr的索引SELECT instr(‘Facebook’,‘boo’)5
length字符串长度函数select length(‘abcedfg’)7
reverse字符串反转函数select reverse(‘abc’)cba
rlike如果str匹配regexp则返回true,否则返回false
locate返回位置pos后str中第一次出现substr的位置SELECT locate(‘bar’,‘foobarbar’,5)7
printf可以根据printf样式格式字符串格式化字符串的函数SELECT printf(“Hello World%d%s”,100,“days”)“Hello World 100天”
str_to_map通过解析文本使用两个分隔符将文本拆分为键值对来创建映射,第一个分隔符分隔对,第二个分隔符分配键和值。如果只给出一个参数,则使用默认分隔符:’,‘作为delimiter1,’:'作为delimiter2
upper字符串转大写函数select upper(‘ab’)AB
ucase字符串转大写函数select ucase (‘ab’)AB
lower字符串转小写函数select lower(‘AB’)ab
lcase字符串转小写函数select lcase (‘AB’)ab
trim去空格函数
ltrim左边去空格函数
rtrim右边去空格函数
regexp_replace正则表达式替换函数,将字符串A中的符合java正则表达式B的部分替换为Cregexp_replace(string A, string B, string C):select regexp_replace(‘abc’, ‘a’, ‘v’)vbc
regexp_extract正则表达式解析函数,将字符串subject按照pattern正则表达式的规则拆分regexp_extract(string subject, string pattern, int index)
parse_urlURL解析函数parse_url(string urlString, string partToExtract [, stringkeyToExtract])partToExtract的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO.
get_json_objectjson解析函数get_json_object(string json_string, string path)解析json的字符串json_string,返回path指定的内容
space空格字符串函数select space(10)10个空格
repeat重复字符串函数select repeat(‘a’,2)aa
lpad左补足函数select lpad(‘abc’,3,‘d’)将’abc’进行用d进行左补足到4位:dabc
rpad右补足函数select lpad(‘abc’,3,‘d’)将’abc’进行用d进行右补足到4位:abcd
split分割字符串函数select split(‘abcabcd’,‘c’)[“ab”,“ab”,“d”]
find_in_set集合查找函数select find_in_set(‘a’,‘a,b,c’)1
sentences将字符串中内容按语句分组,每个单词间以逗号分隔,最后返回数组sentences(‘Hello there! How are you?’)( (“Hello”, “there”), (“How”, “are”,“you”) )

复合类型构造函数

函数名含义实例结果
map集合构造select map(‘a’,‘1’,‘b’,‘2’){“a”:“2”,“b”:“1”}
structstruct 构造函数STRUCTprovince:STRING,city:STRING,district:STRING,detail:STRING
array构造数组select array(1,2,3)[1,2,3]
create_unioncreate_union (tag, val1, val2, …) 使用给定的 tag 和表达式,构造一个 union类型数据结构。tag 表示使用第 tag 个select create_union(0,‘ss’,array(1,2,3)){0:“ss”}

集合操作函数

函数名含义实例结果
size集合大小select size(array(‘a’,‘b’))2
size数组大小select size(map(‘name’,‘chang’,‘age’,‘18’,‘hobbies’,‘swimming’))3
array_contains判断元素数组是否包含元素select array_contains(array(“aa”,“bb”,“cc”),“aa”)true
map_keys获取map中所有key集合select map_keys(map(‘name’,‘chang’,‘age’,‘18’,‘hobbies’,‘swimming’))[“name”,“age”,“hobbies”]
map_values获取map中所有value集合select map_values(map(‘name’,‘chang’,‘age’,‘18’,‘hobbies’,‘swimming’))[“chang”,“18”,“swimming”]
sort_array数组排序select sort_array(array(18,1,7,23,123,55))[1,7,18,23,55,123]

表生成函数

函数名含义实例结果
explode字符串分割,或者将array或者map展开

XPath解析XML函数

函数名含义实例结果
XPathxpath(xml,xpath) - 返回xml节点中与xpath表达式匹配的值的字符串数组SELECT xpath(’ b1 </ b> b2 </ b> b3 </ b> c1 </ c> c2 </ c> ',‘a / c / text()’)FROM src LIMIT 1[“c1”,“c2”]
xpath_booleanxpath_boolean(xml,xpath) - 计算布尔xpath表达式SELECT xpath_boolean(’ 1 </ b> ',‘a / b’)FROM src LIMIT 1;true
xpath_doublexpath_double(xml,xpath) - 返回与xpath表达式匹配的double值SELECT xpath_double(’ 1 </ b> 2 </ b> ’ ,‘sum(a / b)’) from src LIMIT 1;3.0
xpath_floatxpath_float(xml,xpath) - 返回与xpath表达式匹配的浮点值SELECT xpath_float(’ 1 </ b> 2 </ b> ',‘sum (a / b)’)FROM src LIMIT 1;3.0
xpath_intxpath_int(xml,xpath) - 返回与xpath表达式匹配的整数值SELECT xpath_int(’ 1 </ b> 2 </ b> ',‘sum (a / b)’)FROM src LIMIT 1;3
xpath_longpath_long(xml,xpath) - 返回与xpath表达式匹配的long值SELECT xpath_long(’ 1 </ b> 2 </ b> ',‘sum (a / b)’)FROM src LIMIT 1;3
xpath_numberxpath_number(xml,xpath) - 返回与xpath表达式匹配的double值SELECT xpath_number(’ 1 </ b> 2 </ b> ’ ,‘sum(a / b)’)from src LIMIT 1;3.0
xpath_shortxpath_short(xml,xpath) - 返回与xpath表达式匹配的short值SELECT xpath_short(’ 1 </ b> 2 </ b> ',‘sum (a / b)’)FROM src LIMIT 1;3
xpath_stringxpath(xml,xpath) - 返回xml节点中与xpath表达式匹配的值的字符串数组SELECT xpath_string(’ b </ b> cc </ c> </ a >’,‘a / c’)FROM src LIMIT 1;‘B1B2’
  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、关系运算: 4 1. 等值比较: = 4 2. 不等值比较: 4 3. 小于比较: < 4 4. 小于等于比较: 5 6. 大于等于比较: >= 5 7. 空值判断: IS NULL 5 8. 非空判断: IS NOT NULL 6 9. LIKE比较: LIKE 6 10. JAVA的LIKE操作: RLIKE 6 11. REGEXP操作: REGEXP 7 二、数学运算: 7 1. 加法操作: + 7 2. 减法操作: - 7 3. 乘法操作: * 8 4. 除法操作: / 8 5. 取余操作: % 8 6. 位与操作: & 9 7. 位或操作: | 9 8. 位异或操作: ^ 9 9.位取反操作: ~ 10 三、逻辑运算: 10 1. 逻辑与操作: AND 10 2. 逻辑或操作: OR 10 3. 逻辑非操作: NOT 10 四、数值计算 11 1. 取整函数: round 11 2. 指定精度取整函数: round 11 3. 向下取整函数: floor 11 4. 向上取整函数: ceil 12 5. 向上取整函数: ceiling 12 6. 取随机数函数: rand 12 7. 自然指数函数: exp 13 8. 以10为底对数函数: log10 13 9. 以2为底对数函数: log2 13 10. 对数函数: log 13 11. 幂运算函数: pow 14 12. 幂运算函数: power 14 13. 开平方函数: sqrt 14 14. 二进制函数: bin 14 15. 十六进制函数: hex 15 16. 反转十六进制函数: unhex 15 17. 进制转换函数: conv 15 18. 绝对值函数: abs 16 19. 正取余函数: pmod 16 20. 正弦函数: sin 16 21. 反正弦函数: asin 16 22. 余弦函数: cos 17 23. 反余弦函数: acos 17 24. positive函数: positive 17 25. negative函数: negative 17 五、日期函数 18 1. UNIX时间戳转日期函数: from_unixtime 18 2. 获取当前UNIX时间戳函数: unix_timestamp 18 3. 日期转UNIX时间戳函数: unix_timestamp 18 4. 指定格式日期转UNIX时间戳函数: unix_timestamp 18 5. 日期时间转日期函数: to_date 19 6. 日期转年函数: year 19 7. 日期转月函数: month 19 8. 日期转天函数: day 19 9. 日期转小时函数: hour 20 10. 日期转分钟函数: minute 20 11. 日期转秒函数: second 20 12. 日期转周函数: weekofyear 20 13. 日期比较函数: datediff 21 14. 日期增加函数: date_add 21 15. 日期减少函数: date_sub 21 六、条件函数 21 1. If函数: if 21 2. 非空查找函数: COALESCE 22 3. 条件判断函数:CASE 22 4. 条件判断函数:CASE 22 七、字符串函数 23 1. 字符串长度函数:length 23 2. 字符串反转函数:reverse 23 3. 字符串连接函数:concat 23 4. 带分隔符字符串连接函数:concat_ws 23 5. 字符串截取函数:substr,substring 24 6. 字符串截取函数:substr,substring 24 7. 字符串转大写函数:upper,ucase 24 8. 字符串转小写函数:lower,lcase 25 9. 去空格函数:trim 25 10. 左边去空格函数:ltrim 25 11. 右边去空格函数:rtrim 25 12. 正则表达式替换函数:regexp_replace 26 13. 正则表达式解析函数:regexp_extract 26 14. URL解析函数:parse_url 26 15. json解析函数:get_json_object 27 16. 空格字符串函数:space 27 17. 重复字符串函数:repeat 27 18. 首字符ascii函数:ascii 28 19. 左补足函数:lpad 28 20. 右补足函数:rpad 28 21. 分割字符串函数: split 28 22. 集合查找函数: find_in_set 29 八、集合统计函数 29 1. 个数统计函数: count 29 2. 总和统计函数: sum 29 3. 平均值统计函数: avg 30 4. 最小值统计函数: min 30 5. 最大值统计函数: max 30 6. 非空集合总体变量函数: var_pop 30 7. 非空集合样本变量函数: var_samp 31 8. 总体标准偏离函数: stddev_pop 31 9. 样本标准偏离函数: stddev_samp 31 10.中位数函数: percentile 31 11. 中位数函数: percentile 31 12. 近似中位数函数: percentile_approx 32 13. 近似中位数函数: percentile_approx 32 14. 直方图: histogram_numeric 32 九、复合类型构建操作 32 1. Map类型构建: map 32 2. Struct类型构建: struct 33 3. array类型构建: array 33 十、复杂类型访问操作 33 1. array类型访问: A[n] 33 2. map类型访问: M[key] 34 3. struct类型访问: S.x 34 十一、复杂类型长度统计函数 34 1. Map类型长度函数: size(Map) 34 2. array类型长度函数: size(Array) 34 3. 类型转换函数 35
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值