hive函数大全详细解释+简单运用

tab_name解释案例结果
逻辑 非select !trueTRUE
!=不等值比较select 2!=1FALSE
%取余select 3%21
&按位与select 3&5 from src limit1
*乘法select 2*36
+加法select 2+35
-减法select 3-12
/除法select 3/21.5
<小于select 2<3TRUE
<=小于等于select 2<=3TRUE
<=>等值比较select 1<=>2FALSE
<>不等值比较select 2 <> 3TRUE
=等值比较select 2 == 2TRUE
>大于select 3 > 4FALSE
>=大于等于select 3>=2TRUE
^运算符查看两个参数的二进制表示法的值,并执行按位”异或”操作select 5^129
abs绝对值函数select abs(-9)9
acos反余弦函数select acos(2) from src limit 1;0
add_months日期加减月select add_months(‘2009-08-31’, 1) from src limit 1;2009-09-30
and逻辑与
array构造数组构造数组[1,2,3]
array_contains判断元素数组是否包含元素select array_contains(array(“aa”,“bb”,“cc”),“aa”)TRUE
ascii返回字符串第一个字符的ascii码select ascii(‘abc’)97
asin反正弦函数select asin(2)from src limit 1;空值
assert_true如果’condition’不为真,则抛出异常。SELECT assert_true(x> = 0)FROM src LIMIT 1;空值
atan- 返回x的atan(arctan)(x是弧度)SELECT atan(0)FROM src LIMIT 1;0
avg平均值统计函数select avg(数值字段)
base64将参数从二进制转换为base 64字符串
between在[NOT] BETWEEN b和c之间 - 评估a是否在b和c之间
bin二进制函数select bin(4)100
case条件判断函数case a when b then c [when d then e] [else f] END如果a=b就返回c,a=d就返回e,否则返回f
cbrt返回double值的立方根。SELECT cbrt(27.0);3.0
ceil向上取整函数,返回等于或者大于该double变量的最小的整数select ceil(6.1);7
ceiling向上取整函数,返回等于或者大于该double变量的最小的整数select ceil(6.2);7
coalesce非空查找函数,返回第一非null的值coalesce(null,1,2)1
collect_list集合不去重函数将 rst字段合并成一个数组,不去重
collect_set集合去重数rst字段进行合并成一个数组,去重
compute_stats返回一组基本类型值的统计摘要
concat字符串连接函数select concat(‘ab’,‘c’,‘d’)abcd
concat_ws带分隔符字符串连接函数/数组转换成字符串的函数select concat(’.’,‘ab’,‘c’,‘d’)ab.c.d
context_ngrams
conv进制转换函数conv(BIGINT num, int from_base, int to_base)select conv(17,10,2)10001
corr返回组数字对之间的Pearson相关系数该函数将任意一对数字类型作为参数,并返回一个double。任何具有NULL的对都将被忽略。如果应用于空集:返回NULL。如果N * SUM(x * x)= SUM(x)* SUM(x):返回NULL。
如果N * SUM(y * y)= SUM(y)* SUM(y):返回NULL。
cos返回x的余弦值(x是弧度)SELECT cos(0)FROM src LIMIT 11
count个数统计函数select count(*)
covar_pop返回一组数字对的总体协方差该函数将任意一对数字类型作为参数,并返回一个double.任何具有NULL的对都将被忽略。如果该函数应用于空集,则返回NULL 。否则,它计算以下内容:(SUM(x * y)-SUM(x)* SUM(y)/ COUNT(x,y))/ COUNT(x,y)其中x和y都不为空。
covar_sampcovar_samp(x,y) - 返回一组数字对的样本协方差该函数将任意一对数字类型作为参数,并返回一个double。任何具有NULL的对都将被忽略。如果应用于空集:返回NULL。如果应用于具有单个元素的集合:将返回NULL。(SUM(x * y)-SUM(x)* SUM(y)/ COUNT(x,y))/(COUNT(x,y)-1)其中x和y都不为null 。1
crc32计算字符串或二进制参数的循环冗余校验值并返回bigint值。SELECT crc32(‘ABC’);2743272264
create_unioncreate_union (tag, val1, val2, …) 使用给定的 tag 和表达式,构造一个 union类型数据结构。tag 表示使用第 tag 个select create_union(0,‘ss’,array(1,2,3)){0:“ss”}
cume_dist
current_database当前使用数据库名称返回
current_date当前日期select current_date()2020/8/29
current_timestamp当前的日期加时间select current_timestamp2020/8/29 15:15
current_user返回当前用户名select current_userroot
date_add日期加天数select date_add(‘2020-8-29’,1)2020/8/30
date_format日期格式fmt指定的格式将日期/时间戳/字符串转换为字符串值。SELECT date_format(‘2015-04-08’,‘y’);‘2015’
date_sub日期减天数select date_sub(‘2020-8-29’,1)2020/8/28
datediff两个日期相差的天数select datediff(‘2020-8-29’,1)2020/8/28
day日期转天函数select day(‘2020-8-29 13:50:9’)29
dayofmonth当前时间是一个月中的第几天SELECT dayofmonth(‘2009-07-30’)FROM src LIMIT 1;29
dayofweek返回日期/时间戳的星期几SELECT dayofweek (‘2009-07-30’)FROM src LIMIT 1
decode使用第二个参数字符集解码第一个参数字符集的可能选项是’US-ASCII’,‘ISO-8859-1’,‘UTF-8’,‘UTF-16BE’, ‘UTF-16LE’和’UTF-16’。如果任一参数为null,则结果也将为null
degrees将弧度转换为度数SELECT degrees(30)FROM src LIMIT 1-1
dense_rank函数’dense_rank’没有文档
div将a除以b舍入为长整数SELECT 3 div 2 FROM src LIMIT 1;1
e返回ESELECT e()FROM src LIMIT 1;2.718281828459045
elt返回第n个字符串SELECT elt(1,‘face’,‘book’)FROM src LIMIT 1;‘面对’
encode使用第二个参数字符集对第一个参数进行编码字符集的可能选项是“US-ASCII”,“ISO-8859-1”,“UTF-8”“UTF-16BE”, ‘UTF-16LE’和’UTF-16’。如果任一参数为null,则结果也将为null
ewah_bitmap使用第二个参数字符集对第一个参数进行编码字符集的可能选项是“US-ASCII”,“ISO-8859-1”“UTF-8”,“UTF-16BE”, ‘UTF-16LE’和’UTF-16’。如果任一参数为null,则结果也将为null
ewah_bitmap返回列的EWAH压缩位图表示。
ewah_bitmap_andewah_bitmap_and(b1,b2) - 返回EWAH压缩的位图,该位图是两个位图的按位AND。
ewah_bitmap_emptyewah_bitmap_empty(bitmap) - 测试EWAH压缩位图是否全为零的谓词
ewah_bitmap_orewah_bitmap_or(b1,b2) - 返回EWAH压缩位图,该位图是两个位图的按位OR
exp自然指数函数,返回自然对数e的a次方select exp(1) from dual2.718281828
explode字符串分割,或者将array或者map展开select !trueFALSE
field返回str1,str2,…列表中str的索引或0如果未找到则支持所有基元类型,使用str.equals(x)比较参数。如果str为NULL,则返回值为0
find_in_set返回str_array中str的第一个匹配项,其中str_array是逗号分隔的字符串。如果任一参数为null,则返回null。如果第一个参数有逗号,则返回0。SELECT find_in_set(‘ab’,‘abc,b,ab,c,def’)FROM src LIMIT 1;3
first_value
floor向下取整函数,返回等于或者小于该double变量的最大的整数select floor(3.14) ;3
format_number将数字X格式化为’#,###,###。##'等格式SELECT format_number(12332.123456,4)‘12,332.1235’
from_unixtime以指定的格式返回unix_timeSELECT from_unixtime(0,‘yyyy-MM-dd HH:mm:ss’)FROM src LIMIT 1‘1970-01-01 00:00:00’
from_utc_timestamp假设给定的时间戳是UTC并转换为给定的时区(从Hive 0.8.0开始)
get_json_objectjson 解析函数:get_json_object(string json_string, string path)解析json的字符串json_string,返回path指定的内容
greatest
hash返回参数的哈希值
hex十六进制函数select hex(17)11
histogram_numeric直方图/近似中位数函数percentile_approx(DOUBLE col, p [, B])可以输入多个百分位数,返回类型也为array/可以输入多个百分位数,返回类型也为arrayFALSE
hour日期转小时函数select hour(‘2020-8-29 13:50:9’)13
ifif条件判断,类似于三元表达式if( 1 is null,‘a’,‘b’ )b
in_file如果str出现在文件中,则返回true
index返回a的第n个元素
initcap返回str,每个单词的第一个字母用大写字母表示,所有其他字母用小写字母表示。单词由空格分隔。SELECT initcap(‘tHe soap’)FROM src LIMIT 1;'肥皂
inline将数据和结构分解为表
instr返回str中第一次出现substr的索引SELECT instr(‘Facebook’,‘boo’)5
isnotnull是否不为空isnotnull ( a )如果a为非null就返回true,否则返回false
isnull是否为空isnull( a )如果a为null就返回true,否则返回false
java_method使用反射调用方法 同义词:reflect使用此UDF通过匹配参数签名来调用Java方法
json_tupleget_json_object类似,但它需要多个名称并返回一个元组。所有输入参数和输出列类型都是字符串
lagG函数用于访问前一行的数据。选择p1.p_mfgr,p1.p_name,p1.p_size, p1.p_size - lag(p1.p_size,1,p1.p_size)over(由p1.p_mfgr按p1.p_name排序)作为deltaSz 从part p1 join p1.p_partkey = p2.p_partkey上的p2部分
last_day日期的当月的最后一天SELECT last_day(‘2009-01-12’)FROM src LIMIT 1;‘2009-01-31’
last_value
lcase返回str,所有字符都改为小写SELECT lcase(‘Facebook’)FROM src LIMIT 1;“Facebook的
leadLEAD函数用于从下一行返回数据。p_name,p_retailprice,lead(p_retailprice)over()为l1,lag(p_retailprice)over()为l2,其中p_retailprice = 1173.15
least返回值列表中的最小值SELECT least(2,3,1)FROM src LIMIT 1;1
length字符串长度函数select length(‘abcedfg’)7
levenshtein该函数计算两个弦之间的Levenshtein距离。
like检查str是否匹配模式SELECT a.* FROM srcpart a WHERE a.hr like’%2’LIMIT 1;27 val_27 2008-04-08 12
ln返回x的自然对数SELECT ln(1)FROM src LIMIT 1;0
locate返回位置pos后str中第一次出现substr的位置SELECT locate(‘bar’,‘foobarbar’,5)7
log10以 10 为底对数函数select log10(10003
log2以 2 为底对数函数select log2(8)3
logged_in_user返回登录的用户名
lower字符串转小写函数select lower(‘AB’)ab
lpad左补足函数select lpad(‘abc’,3,‘d’)将’abc’进行用d进行左补足到4位:dabc
ltrim左边去空格函数SELECT ltrim(‘facebook’)FROM src LIMIT 1;“Facebook
map集合构造select map(‘a’,‘1’,‘b’,‘2’){“a”:“2”,“b”:“1”}
map_keys返回map中的keyselect map_keys(map(‘name’,‘chang’,‘age’,‘18’,‘hobbies’,‘swimming’))[“name”,“age”,“hobbies”]
map_values返回map中的valueselect map_values(map(‘name’,‘chang’,‘age’,‘18’,‘hobbies’,‘swimming’))[“chang”,“18”,“swimming”]
max最大值统计函数select max(数值字段)
min最小值统计函数select min(数值字段)
minute日期转分钟函数select minute(‘2020-8-29 13:50:9’)50
month日期转月函数select month(‘2020-8-29 13:50:9’)8
months_between返回date1和date2之间的月数。select months_between(‘2020-01-01’,‘2020-02-01’)1
named_structnamed_struct(name1,val1,name2,val2,…) - 使用给定的字段名称和值创建结构
negative取相反数select negative(-9)9
next_day返回晚于start_date并按指示命名的第一个日期。SELECT next_day(‘2015-01-14’,‘TU’)FROM src LIMIT 1;“2015年1月20日”
ngrams估计由字符串序列组成的行中的前k个n-gram,表示为字符串数组或字符串数​​组数组。'pf’是一个可选的精度因子,用于控制内存使用量。参数’n’指定估计什么类型的n-gram。Unigrams是n = 1,并且bigrams是n = 2.通常,n不会大于约5.'k’参数指定UDAF将返回多少个最高频率的n-gram。可选的精度因子’pf’指定用于估计的内存量; 更多的内存将提供更准确的频率计数,但可能会使JVM崩溃。默认值为20,内部保持20 * k n-gram,但仅返回k个最高频率的值。输出是一组具有前n个n-gram的结构。爆炸()这个UDAF的输出可能很方便。
noop
noopstreaming
noopwithmap
noopwithmapstreaming
not逻辑否
ntile
nvlnvl(T value, T default_value)如果value值为NULL就返回default_value,否则返回value
or逻辑或
parse_url?URL 解析函数parse_url(string urlString, string partToExtract [, stringkeyToExtract])partToExtract的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO.
parse_url_tuple从URL中提取N(N> = 1)个部分。它需要一个URL和一个或多个部件名,并返回一个元组。所有输入参数和输出列类型都是字符串。
percent_rank
percentile返回pc上expr的百分位数(范围:[0,1])。pc可以是double或double数组
percentile_approx近似中位数函数求近似的第pth个百分位数,p必须介于0和1之间
pi返回piSELECT pi()FROM src LIMIT 1;3.14159 …
pmod正取余函数select pmod(9,4)1
posexplode表现得像数组爆炸,但包括原始数组中项目的位置
positive返回数值本身select positive(-5)5
pow幂运算函数select pow(2,3)8
power幂运算函数select pow(2,4)16
printf可以根据printf样式格式字符串格式化字符串的函数SELECT printf(“Hello World%d%s”,100,“days”)“Hello World 100天”
radians将度数转换为弧度SELECT radians(90)FROM src LIMIT 1;1.5707963267949mo
rand取随机数函数,返回一个0到1范围内的随机数select rand() from dual;0.2599644
rank
reflect使用反射调用方法,同义词:java_method使用此UDF通过匹配参数签名来调用Java方法
reflect2使用反射调用arg0的方法使用此UDF通过匹配参数签名来调用Java方法
regexp果str匹配regexp则返回true,否则返回falseSELECT’fb’reexx ‘’*'FROM src LIMIT 1;true
regexp_extract正则表达式解析函数,将字符串subject按照pattern正则表达式的规则拆分regexp_extract(string subject, string pattern, int index)
regexp_replace正则表达式替换函数,将字符串A中的符合java正则表达式B的部分替换为Cregexp_replace(string A, string B, string C):select regexp_replace(‘abc’, ‘a’, ‘v’)vbc
repeat重复字符串函数select repeat(‘a’,2)aa
reverse字符串反转函数select reverse(‘abc’)cba
rlike如果str匹配regexp则返回true,否则返回false
round取整函数,返回double类型的整数值部分 (遵循四舍五入)select round(2.5674)/select round(2.5674,3);3/2.567
row_number
rpad右补足函数select lpad(‘abc’,3,‘d’)将’abc’进行用d进行右补足到4位:abcd
rtrim左边去空格函数SELECT rtrim(‘facebook’)FROM src LIMIT 1;“Facebook的
second日期转秒函数select second(‘2020-8-29 13:50:9’)9
sentences将字符串中内容按语句分组,每个单词间以逗号分隔,最后返回数组sentences(‘Hello there! How are you?’)( (“Hello”, “there”), (“How”, “are”,“you”) )
sha2算SHA-2系列散列函数(SHA-224,SHA-256,SHA-384和SHA-512)。第一个参数是要进行哈希处理的字符串或二进制文件。第二个参数表示结果的所需位长度,其值必须为224,256,384,512或0(相当于256)。从Java 8开始支持SHA-224。如果任一参数为NULL或散列长度不是允许值之一,则返回值为NULL。
sign返回x的符号SELECT sign(40)FROM src LIMIT 1;1
sin正弦函数SELECT sin(0)FROM src LIMIT 1;0
size类型大小(map/array)select size(array(‘a’,‘b’))2
sort_array根据数组元素的自然顺序按升序对输入数组进行排序。SELECT sort_array(array(‘b’,‘d’,‘c’,‘a’))FROM src LIMIT 1;‘A B C D’
soundex返回字符串的soundex代码。soundex代码由名称的第一个字母后跟三个数字组成。SELECT soundex(‘Miller’);M460
space空格字符串函数select space(10)10个空格
split分割字符串函数select split(‘abcabcd’,‘c’)[“ab”,“ab”,“d”]
sqrt开平方函数select sqrt(9)3
stack将k列转换为n行,每行大小为k / n
std返回一组数字的标准偏差
stddev返回一组数字的标准偏差
stddev_pop返回一组数字的标准偏差
stddev_samp返回一组数字的样本标准差
str_to_map通过解析文本使用两个分隔符将文本拆分为键值对来创建映射,第一个分隔符分隔对,第二个分隔符分配键和值。如果只给出一个参数,则使用默认分隔符:’,‘作为delimiter1,’:'作为delimiter2
structstruct 构造函数STRUCTprovince:STRING,city:STRING,district:STRING,detail:STRING
substr字符串截取函数select substr(‘abcde’,3) :select substr(‘abcde’,3,2)cde:cd
substring字符串截取函数select substring(‘abcde’,3)cde
sum总和统计函数select sum(xxx)
tan返回x的正切(x是弧度)SELECT tan(0)FROM src LIMIT 1;1
to_date抽取日期部分select to_date(‘2020-8-29 09:30:29’)2020/8/29
to_unix_timestamp返回UNIX时间戳将指定时间转换为自1970-01-01以来的秒数。
to_utc_timestamp假设给定时间戳在给定时区内并转换为UTC(从Hive 0.8.0开始)
translate通过将from字符串中的字符替换为to字符串中的相应字符来转换输入字符串translate(‘abcdef’,‘ada’,‘192’)返回’1bc9ef’将’a’替换为’1’,将’d’替换为’9’
trim从str中删除前导和尾随空格字符SELECT trim(‘facebook’)FROM src LIMIT 1;“Facebook的"
trunc返回如果输入是日期,则返回日期,其中当天的时间部分被截断为格式模型fmt指定的单位。如果省略fmt,则日期将截断为最近的一天。它目前仅支持’MONTH’/‘MON’/‘MM’,‘QUARTER’/‘Q’和’YEAR’/‘YYYY’/'YY’作为格式。如果输入是数字组,则返回N截断为D十进制地方。如果省略D,则N被截断为0位.D可以是负截断(使零)小数点左边的D位。SELECT trunc(‘2009-02-12’, ‘MM’);‘2009-02-01’
ucase字符串转大写函数select upper(‘ab’)AB
unbase64base64 解码函数select unhex(‘616263’)abc
unhex反转十六进制函数
unix_timestamp获取当前/日期/指定格式日期转 UNIX 时间戳函数select from_unixtime(1323308943,‘yyyyMMdd’)1323423425
upper字符串转大写函数select upper(‘ab’)AB
uuid返回通用唯一标识符(UUID)字符串。该值作为规范的UUID 36字符字符串返回。SELECT uuid();‘0baf1f52-53df-487f-8292-99a03716b688’
var_pop非空集合总体变量函数统计结果集中col非空集合的总体变量
var_samp非空集合样本变量函数统计结果集中col非空集合的样本变量
variance返回一组数字的方差
version返回Hive构建版本字符串 - 包括基本版本和修订版本。
weekofyear当前时间是一年中的第几周select weekofyear(‘2020-8-29 09:30:29’)35
when
windowingtablefunction
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
xpath_floatxpath_float(xml,xpath) - 返回与xpath表达式匹配的浮点值SELECT xpath_float(’ 1 </ b> 2 </ b> ',‘sum (a / b)’)FROM src LIMIT 1;3
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
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’
year日期转年函数select year(‘2020-8-29 13:00:49’)2020
~位取反操作
位或操作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值