Hive函数词典
目录
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- L
- M
- N
- O
- P
- R
- S
- T
- U
- V
- W
- X
- Y
- 其他运算符
A
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
abs | 计算绝对值 | abs(-12) | 12 |
acos | 求反余弦值 | SELECT acos(1) FROM src LIMIT 1; | 0 |
add_months | 返回当前时间下再增加num_months个月的日期 | SELECT add_months('2009-08-31', 1) FROM src LIMIT 1; | 2009-09-30' |
and | 如果A和B均为TRUE,则为TRUE;否则为FALSE。如果A为NULL或B为NULL,则为NULL | select 1 from lxw_dual where 1=1 and 2=2; | 1 |
array | 数组 | array('a','b','c') | 单纯的表示函数 |
array_contains | 如该数组Array包含value返回true。,否则返回false | SELECT array_contains(array(1, 2, 3), 2) FROM src LIMIT 1; | TRUE |
ascii | 返回字符串str第一个字符的ascii码 | select ascii('abcde') from lxw_dual; | 97 |
asin | 求d的反正弦值 | SELECT asin(0) FROM src LIMIT 1; | 0 |
assert_true | 如果“condition”不为真,则抛出异常。 | SELECT assert_true(x >= 0) FROM src LIMIT 1; | NULL |
atan | 求反正切值 | SELECT atan(0) FROM src LIMIT 1; | 0 |
avg | avg(col)统计结果集中col的平均值;avg(DISTINCT col)统计结果中col不同值相加的平均值 | select avg (distinct t) from lxw_dual; | 50 |
B
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
base64 | 将参数从二进制转换为base64字符串 | null | null |
between | 计算a是否在b和c之间 | null | null |
bin | 返回a的二进制代码表示 | select bin(7) from lxw_dual; | 111 |
C
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
case | 如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f | Select case 100 when 50 then 'tom' when 100 then 'mary'else 'tim' end from lxw_dual; | mary |
cbrt | 返回双精度值的立方根。 | SELECT cbrt(27.0); | 3 |
ceil | 求其不小于小给定实数的最小整数如:ceil(6) = ceil(6.1)= ceil(6.9) = 6 | SELECT ceil(-0.1) FROM src LIMIT 1; | 0 |
ceiling | 与ceil功能相同 | select ceiling(3.1415926) from lxw_dual; | 4 |
coalesce | 返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL | select COALESCE(null,'100','50′) from lxw_dual; | 100 |
collect_list | 返回具有重复项的对象列表 | null | null |
collect_set | 返回消除重复元素的一组对象 | null | null |
compute_stats | 返回一组基本类型值的统计摘要。 | null | null |
concat | 返回输入字符串连接后的结果,支持任意个输入字符串 | select concat(‘abc’,'def’,'gh’) from lxw_dual; | abcdefgh |
concat_ws | 返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符 | select concat_ws(',','abc','def','gh') from lxw_dual; | abc,def,gh |
context_ngrams | 与ngram类似,但context_ngram()允许你预算指定上下文(数组)来去查找子序列 | null | null |
conv | 将数值num从from_base进制转化到to_base进制 | select conv(17,10,16) from lxw_dual; | 11 |
corr | 返回两列数值的相关系数 | null | null |
cos | 返回a的反余弦值 | select acos(0.6216099682706644) from lxw_dual; | 0.9 |
count | count(*), count(expr), count(DISTINCT expr[, expr_.]),count(*)统计检索出的行的个数,包括NULL值的行;count(expr)返回指定字段的非空值的个数;count(DISTINCTexpr[, expr_.])返回指定字段的不同的非空值的个数 | select count(*) from lxw_dual; | 20 |
covar_pop | 返回一组数字对的总体协方差 | null | null |
covar_samp | 返回的样本协方差返回的样本协方差的一组数字对 | null | null |
crc32 | 返回一组数字对的总体协方差样本协方差计算字符串或二进制参数的循环冗余检查值并返回bigint值。 | SELECT crc32('ABC'); | 2743272264 |
create_union | 返回一组数字对的总体协方差样本的协方差为给定标签创建一个与对象的联合 | SELECT create_union(1, 1, "one") FROM src LIMIT 1; | one |
cume_dist | CUME_DIST函数(在某些统计书籍中定义为百分比的倒数)计算指定值相对于一组值的位置。要计算大小为N的集合S中值x的 | NULL | NULL |
current_database | 当前使用数据库名称返回 | SELECT current_database() | database_name |
current_date | 返回查询评估开始时的当前日期。同一查询中current_date的所有调用都返回相同的值。 | null | null |
current_timestamp | 返回系统当前时间 | select current_timestamp(); | 2020/8/28 10:04 |
current_user | 返回当前用户名 | SELECT current_user() | user_name |
D
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
date_add | 返回开始日期startdate增加days天后的日期。 | select date_add('2012-12-08',10) from lxw_dual; | 2012/12/18 |
date_format | date_format(日期/时间戳/字符串,fmt) -将日期/时间戳/字符串转换为由日期格式fmt指定的字符串值。 | SELECT date_format('2015-04-08', 'y'); | 2015 |
date_sub | 返回开始日期startdate减少days天后的日期。 | select date_sub('2012-12-08',10) from lxw_dual; | 2012/11/28 |
datediff | 返回结束日期减去开始日期的天数。 | select datediff('2012-12-08','2012-05-09') from lxw_dual; | 213 |
day | 返回日期中的天 | select day('2011-12-08 10:03:01') from lxw_dual; | 8 |
dayofmonth | 返回日期/时间戳所在月份的日期,或者interval的日期组件 | ||
dayofweek | 返回日期/时间戳的星期几(1 =星期日,2 =星期一,…), 7 =星期六) | SELECT dayofweek('2009-07-30') FROM src LIMIT 1; | 5 |
decode | decode(bin, str) -使用第二个参数字符集解码第一个参数 | NULL | NUll |
degrees | 奖弧度值转换角度值 | SELECT degrees(30) FROM src LIMIT 1; | -1 |
dense_rank | dense_rank()over(order by 列名排序)的结果是连续的 | ,如果有4个人,其中有3个是并列第1名 | 1 1 1 2 |
E
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
e | e() -返回e | SELECT e() FROM src LIMIT 1; | 2.718281828 |
elt | elt(n, str1, str2,…)—返回第n个字符串 | SELECT elt(1, 'face', 'book') FROM src LIMIT 1; | face' |
encode | encode(str, str)——使用第二个参数字符集对第一个参数进行编码 | NULL | NULL |
ewah_bitmap | 返回一个ewah压缩的列的位图表示。 | NULL | NULL |
ewah_bitmap_and | 返回ewah压缩的位图,即两个位图的按位和。 | NULL | NULL |
ewah_bitmap_empty | 测试ewah压缩位图是否全是零的谓词 | NULL | NULL |
ewah_bitmap_or | 返回一个ewah压缩的位图,即两个位图的按位或。 | NULL | NULL |
exp | 返回e的a幂次方, a可为小数 | select exp(2) from lxw_dual; | 7.389056099 |
explode | 将数组a的元素分隔为多行,或将映射的元素分隔为多行和多列 | NULL | NULL |
F
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
field | 返回str的索引在str1,str2,…列表或0,如果没有找到 | NULL | NULL |
find_in_set | find_in_set(string str, string strList),返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0 | select find_in_set('ab','ef,ab,de') from lxw_dual; | 2 |
first_value | first_value—最多接受两个参数。第一个参数是你想要的列的第一个值,第二个参数必须是一个布尔值(可选),默认是假的。如果设置为真,它跳过null值。 | NULL | NULL |
floor | 向下取整,最数轴上最接近要求的值的左边的值 如:6.10->6 -3.4->-4 | SELECT floor(-0.1) FROM src LIMIT 1; | -1 |
format_number | format_number(X, D或F) -将数字X格式化为类似“#,###,###”的格式。,或使用指定的格式F进行格式化,并以字符串形式返回结果。如果D是0,结果没有小数点或小数部分。这应该像MySQL的格式一样 | SELECT format_number(12332.123456, '##################.###') FROM src LIMIT 1; | 12332.123' |
from_unixtime | 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式 | select from_unixtime(1323308943,'yyyyMMdd') fromlxw_dual; | 20111208 |
from_utc_timestamp | from_utc_timestamp(时间戳,字符串时区)——假设给定的时间戳是UTC,并转换为给定的时区(从Hive 0.8.0开始) | NULL | NULL |
G
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
get_json_object | get_json_object(string json_string, string path)解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。 | select get_json_object('{"store":{"fruit":[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],"bicycle":{"price":19.95,"color":"red"}},"email":"amy@only_for_json_udf_test.net","owner":"amy"}','$.owner') from lxw_dual; | amy |
greatest | 最大(v1, v2,…)——返回一个值列表中的最大值 | SELECT greatest(2, 3, 1) FROM src LIMIT 1; | 3 |
H
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
hash | 返回参数的哈希值 | NULL | NULL |
hex | 如果变量是int类型,那么返回a的十六进制表示;如果变量是string类型,则返回该字符串的十六进制表示 | select hex(‘abc’) from lxw_dual; | 616263 |
histogram_numeric | 以b为基准计算col的直方图信息。 | select histogram_numeric(100,5) from lxw_dual; | [{"x":100.0,"y":1.0}] |
hour | 返回日期中的小时 | select hour('2011-12-08 10:03:01') from lxw_dual; | 10 |
I
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
if | 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull | select if(1=2,100,200) from lxw_dual; | 200 |
in | 如果test等于任何valN,则返回true | NULL | NULL |
in_file | 如果str出现在文件中,则返回true | NULL | NULL |
index | 返回a的第n个元素 | NULL | NULL |
initcap | 返回str,每个单词的首字母为大写,其他所有字母为小写。单词由空格分隔。 | SELECT initcap('tHe soap') FROM src LIMIT 1; | The Soap' |
inline | 将数组和结构分解成一个表 | NULL | NULL |
instr | 返回substr在str中第一次出现的索引 | SELECT instr('Facebook', 'boo') FROM src LIMIT 1; | 5 |
isnotnull | 如果a不为空,返回true,否则返回false | NULL | NULL |
isnull | 如果a为空,返回true,否则返回false | NULL | NULL |
J
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
java_method | java_method(类,方法[,arg1[,arg2..]])使用反射调用方法 | NULL | NULL |
json_tuple | (json_tuple, p1, p2,…)与get_json_object类似,但是它接受多个名称并返回一个元组。所有输入参数和输出列类型都是string。 | NULL | NULL |
L
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
lag | 通过([query_partition_子句]order_by_子句)的LAG (scalar_expression [,offset] [,default]);滞后函数用于访问前一行的数据。 | NULL | NULL |
last_day | 返回日期所属月份的最后一天。 | SELECT last_day('2009-01-12') FROM src LIMIT 1; | 2009-01-31' |
last_value | 最多接受两个参数。第一个参数是您想要最后一个值的列,第二个(可选)参数必须是布尔值,默认情况下为false。如果设置为真,它跳过null值。 | NULL | NULL |
lcase | 返回字符串A的小写格式 | select lower('abSEd') from lxw_dual; | absed |
lead | LEAD (scalar_expression [,offset] [,default]) OVER ([query_partition_子句]order_by_子句);LEAD函数用于从下一行返回数据。 | NULL | NULL |
least | 返回一个值列表中的最小值 | SELECT least(2, 3, 1) FROM src LIMIT 1; | 1 |
length | 返回字符串A的长度 | select length('abcedfg') from lxw_dual; | 7 |
levenshtein | 这个函数计算两个字符串之间的levenshtein距离。 | SELECT levenshtein('kitten', 'sitting'); | 3 |
like | 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B 的正则语法,则为TRUE;否则为FALSE。B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。 | select1 from lxw_dual where 'football' like 'foot%'; | 1 |
ln | 以自然数为底d的对数,a可为小数 | SELECT ln(1) FROM src LIMIT 1; | 0 |
locate | 定位(substr, str[, pos]) -返回第一次substr出现在位置pos之后的位置 | SELECT locate('bar', 'foobarbar', 5) FROM src LIMIT 1; | 7 |
log | 返回以base为底的a的对数 | select log(4,256) from lxw_dual; | 4 |
log10 | 返回以10为底的a的对数 | select log10(100) from lxw_dual; | 2 |
log2 | 返回以2为底的a的对数 | select log2(8) from lxw_dual; | 3 |
logged_in_user | 返回登录的用户名 | NULL | NULL |
lower | 返回字符串A的小写格式 | select lower('abSEd') from lxw_dual; | absed |
lpad | 将str进行用pad进行左补足到len位 | select lpad('abc',10,'td') from lxw_dual; | tdtdtdtabc |
ltrim | 去除字符串左边的空格 | select ltrim(' abc ') from lxw_dual; | abc |
M
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
map | map (key1, value1, key2, value2,…)根据输入的key和value对构建map类型 | Create table lxw_test as select map('100','tom','200','mary')as t from lxw_dual;describe lxw_test;t map string,string select t from lxw_test; | {"100":"tom","200":"mary"} |
map_keys | 返回一个无序数组,其中包含输入映射的键。 | NULL | NULL |
map_values | 返回一个无序数组,其中包含输入映射的值。 | NULL | NULL |
matchpath | MatchPath根据窗口中列的数据匹配特定的Pattern.根据筛选的结果列名,MatchPath匹配成功后返回符合Pattern的所有行数据中第一行的筛选列数据和一个Array 格式的tpath字段数据 | NULL | NULL |
max | 统计结果集中col字段的最大值 | select max(t) from lxw_dual; | 100 |
md5 | 为字符串或二进制文件计算MD5 128位校验和 | SELECT md5('ABC'); | '902fbdd2b1df0c4f70b4a5d23525e932' |
min | 统计结果集中col字段的最小值 | select min(t) from lxw_dual; | 10 |
minute | "返回字符串/timestamp /interval的分钟组件 | SELECT minute('2009-07-30 12:58:59') FROM src LIMIT 1; | 58 |
minute | param可以是以下之一:1. 以“yyyy-MM-dd HH:mm:ss”或“HH:mm:ss”格式的字符串。2. 一个时间戳值3.一个一天时间间隔值" | SELECT minute('2009-07-30 12:58:59') FROM src LIMIT 1; | 58 |
month | 返回日期中的月份。 | select month('2011-12-08 10:03:01') from lxw_dual; | 12 |
months_between | 日期1和日期2之间的月份数 | SELECT months_between('1997-02-28 10:30:00', '1996-10-30'); | 3.94959677 |
N
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
named_struct | 返回参数的哈希值 | NULL | NULL |
negative | 返回-a | select negative(-5) from lxw_dual; | 5 |
next_day | next_day(start_date, day_of_week)——返回第一个日期,该日期比start_date晚,并按指定的名称命名。 | SELECT next_day('2015-01-14', 'TU') FROM src LIMIT 1; | 2015-01-20' |
ngrams | 在由字符串序列(表示为字符串数组或字符串数组的数组)组成的行中估计最前面的k个n-grams。“pf”是控制内存使用的可选精度因子。 | NULL | NULL |
noop | NULL | NULL | NULL |
noopstreaming | NULL | NULL | NULL |
noopwithmap | NULL | NULL | NULL |
noopwithmapstreaming | NULL | NULL | NULL |
not | 如果A为FALSE,或者A为NULL,则为TRUE;否则为FALSE | select 1 from lxw_dual where not 1=2; | 1 |
ntile | 把有序的数据集合平均分配到指定的数量(num)个桶中, 将桶号分配给每一行。如果不能平均分配,则优先分配较小编号的桶,并且各个桶中能放的行数最多相差1。 | ntile (num) over ([partition_clause] order_by_clause) as your_bucket_num | NULL |
nvl | 如果值为空,返回默认值,否则返回值 | SELECT nvl(null,'bla') FROM src LIMIT 1; | bla |
O
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
or | 如果A为TRUE,或者B为TRUE,或者A和B均为TRUE,则为TRUE;否则为FALSE | select 1 from lxw_dual where 1=2 or 2=2; | 1 |
P
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
parse_url | parse_url(string urlString, string partToExtract [, stringkeyToExtract]),返回URL中指定的部分。partToExtract的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO. | selectparse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST') fromlxw_dual; | facebook.com |
parse_url_tuple | 从一个URL中提取N (N>=1)个部分。 | SELECT b.* FROM src LATERAL VIEW parse_url_tuple(fullurl, 'HOST', 'PATH', 'QUERY', 'QUERY:id') b as host, path, query, query_id LIMIT 1; | NULL |
percent_rank | (分组内当前行的rank值-1)/(分组内总行数-1) | NULL | NULL |
percentile | 求准确的第pth个百分位数,p必须介于0和1之间,但是col字段目前只支持整数,不支持浮点数类型 | select percentile(score,<0.2,0.4>) from lxw_dual; | 取0.2,0.4位置的数据 |
percentile_approx | 求近似的第pth个百分位数,p必须介于0和1之间,返回类型为double,但是col字段支持浮点类型。参数B控制内存消耗的近似精度,B越大,结果的准确度越高。默认为10,000。当col字段中的distinct值的个数小于B时,结果为准确的百分位数 | NULL | NULL |
pi | 返回π | SELECT pi() FROM src LIMIT 1; | 3.14159... |
pmod | 返回正的a除以b的余数 | select pmod(9,4) from lxw_dual; | 1 |
posexplode | 行为类似于数组的爆炸,但包括项目在原始数组中的位置 | NULL | NULL |
positive | 返回a | select positive(-10) from lxw_dual; | -10 |
pow | 返回a的p次幂 | select pow(2,4) from lxw_dual; | 16 |
power | pow(x1, x2) - 使x1的x2次方 | SELECT pow(2, 3) FROM src LIMIT 1; | 8 |
printf | 可以根据打印格式字符串格式化字符串的函数 | SELECT printf("Hello World %d %s", 100, "days")FROM src LIMIT 1; | "Hello World 100 days" |
R
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
radians | 将角度值转换成弧度值 | SELECT radians(90) FROM src LIMIT 1; | 1.5707963267949mo |
rand | 每行返回一个DOUBLE型随机数seed是随机因子 | rand(2) | 0.731146936 |
rank | 排序相同时会重复,总数不会变 | NULL | NULL |
reflect | 用反射调用方法 | NULL | NULL |
reflect2 | reflect2(arg0,方法[,arg1[,arg2..]])通过反射调用arg0的方法 | NULL | NULL |
regexp | 功能与RLIKE相同 | select1 from lxw_dual where 'footbar' REGEXP '^f.*r$'; | 1 |
regexp_extract | regexp_extract(string subject, string pattern, int index),将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。 | select regexp_extract('foothebar', 'foo(.*?)(bar)', 1) fromlxw_dual; | the |
regexp_replace | regexp_replace(string A, string B, string C),将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数 | select regexp_replace('foobar', 'oo|ar', '') from lxw_dual; | fb |
repeat | 返回重复n次后的str字符串 | select repeat('abc',5) from lxw_dual; | abcabcabcabcabc |
reverse | 返回字符串A的反转结果 | select reverse(abcedfg’) from lxw_dual; | gfdecba |
rlike | 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合JAVA正则表达式B的正则语法,则为TRUE;否则为FALSE。 | select1 from lxw_dual where 'footbar’ rlike '^f.*r$’ | 1 |
round | "返回四舍五入的BIGINT值返回保留指定小数位的四舍五入的BIGINT值 | round(12.3584,2) | 12.36 |
row_number | row_number函数为分区中的每一行分配一个惟一的数字(顺序地,从1开始,由ORDER by定义)。 | NULL | NULL |
rpad | 将str进行用pad进行右补足到len位 | select rpad('abc',10,'td') from lxw_dual; | abctdtdtdt |
rtrim | 去除字符串右边的空格 | select rtrim(' abc ') from lxw_dual; | abc |
S
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
second | 返回字符串/时间戳/间隔参数的第二个组件 | SELECT second('2009-07-30 12:58:59') FROM src LIMIT 1; | 59 |
sentences | 将str分割成句子数组,每个句子都是单词数组。“lang”和“country”参数是可选的,如果省略,则使用默认的语言环境。 | SELECT sentences('Hello there! I am a UDF.') FROM src LIMIT 1; | [ ["Hello", "there"], ["I", "am", "a", "UDF"] ] |
sha2 | 计算字符串或二进制的sha -1摘要,并以十六进制字符串的形式返回值。 | SELECT sha('ABC'); | 3c01bdbb26f358bab27f267924aa2c9a03fcfdb8' |
sign | 如果a是正数则返回1.0,是负数则返回-1.0,否则返回0.0 | SELECT sign(40) FROM src LIMIT 1; | 1 |
sin | 返回a的正弦值 | select sin(0.8) from lxw_dual; | 0.717356091 |
size | 返回所给数据类型的长度 | elect size(map('100','tom','101','mary')) from lxw_dual; | 2 |
sort_array | 根据数组元素的自然顺序,对输入数组按升序排序。 | SELECT sort_array(array('b', 'd', 'c', 'a')) FROM src LIMIT 1; | a', 'b', 'c', 'd' |
soundex | 返回字符串的soundex代码。 | SELECT soundex('Miller'); | M460 |
space | 返回长度为n的字符串 | select length(space(10)) from lxw_dual; | 10 |
split | 按照pat字符串分割str,会返回分割后的字符串数组 | select split('abtcdtef','t') from lxw_dual; | ["ab","cd","ef"] |
sqrt | 返回a的平方根 | select sqrt(16) from lxw_dual; | 4 |
stack | 将k列转换为n行,每行大小为k/n | NULL | NULL |
std | 返回一组数字的标准偏差 | NULL | NULL |
stddev | 返回一组数字的标准偏差 | NULL | NULL |
stddev_pop | 该函数计算总体标准偏离,并返回总体变量的平方根,其返回值与VAR_POP函数的平方根相同 | NULL | NULL |
stddev_samp | 该函数计算样本标准偏离 | NULL | NULL |
str_to_map | 通过解析文本创建映射 | NULL | NULL |
struct | 根据输入的参数构建结构体struct类型 | NULL | NULL |
substr | 返回字符串A从start位置到结尾的字符串 | select substr('abcde',3) from lxw_dual; | cde |
substring | 返回字符串A从start位置到结尾的字符串 | select substr('abcde',3) from lxw_dual; | cde |
sum | sum(col)统计结果集中col的相加的结果;sum(DISTINCT col)统计结果中col不同值相加的结果 | select sum(distinct t) from lxw_dual; | 70 |
T
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
tan | 求正切值 | tan(0) | 0 |
to_date | 返回日期时间字段中的日期部分。 | select to_date('2011-12-08 10:03:01') from lxw_dual; | 2011/12/8 |
to_unix_timestamp | 返回UNIX时间戳 | NULL | NULL |
to_utc_timestamp | 假设给定的时间戳在给定的时区中,并转换为UTC(从Hive 0.8.0开始) | NULL | NULL |
translate | 通过将from字符串中出现的字符替换为to字符串中对应的字符来转换输入字符串 | NULL | NULL |
trim | 去除字符串两边的空格 | select trim(' abc ') from lxw_dual; | abc |
trunc | 如果输入是date,则返回date,并将当天的时间部分截断为fmt格式模型指定的单元。如果省略fmt,则日期被截断为最近的日期。 | SELECT trunc('2009-02-12', 'MM'); | OK |
U
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
ucase | 返回字符串A的大写格式 | select upper('abSEd') from lxw_dual; | ABSED |
unbase64 | 将参数从base64字符串转换为二进制 | NULL | NULL |
unhex | 返回该十六进制字符串所代码的字符串 | select unhex(‘616263’) from lxw_dual; | abc |
unix_timestamp | 获得当前时区的UNIX时间戳转换格式为"yyyy-MM-ddHH:mm:ss"的日期到UNIX时间戳。如果转化失败,则返回0。 | select unix_timestamp() from lxw_dual;select unix_timestamp('2011-12-07 13:01:03') from lxw_dual; | 1,323,309,615 |
upper | 返回字符串A的大写格式 | select upper('abSEd') from lxw_dual; | ABSED |
uuid | 返回一个通用唯一标识符(UUID)字符串。 | SELECT uuid() | 0baf1f52-53df-487f-8292-99a03716b688' |
V
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
var_pop | 统计结果集中col非空集合的总体变量(忽略null) | NULL | NULL |
var_samp | 统计结果集中col非空集合的样本变量(忽略null) | NULL | NULL |
variance | 返回一组数字的方差 | NULL | NULL |
version | 返回单元构建版本字符串—包括基本版本和修订版本。 | NULL | NULL |
W
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
weekofyear | 返回日期在当前的周数 | select weekofyear('2011-12-08 10:03:01') from lxw_dual; | 49 |
when | 当a = true时,返回b;当c = true时,返回d;否则返回e | CASE WHEN deptno=1 THEN Engineering | NULL |
windowingtablefunction | NULL | NULL | NULL |
X
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
xpath | 返回xml节点中与xpath表达式匹配的值的字符串数组 | SELECT xpath('b1b2b3c1c2', 'a/b/text()') FROM src LIMIT 1 | ["b1","b2","b3"] |
xpath_boolean | 计算一个布尔xpath表达式 | SELECT xpath_boolean('1','a/b') FROM src LIMIT 1; | TRUE |
xpath_double | 返回一个匹配xpath表达式的双精度值 | SELECT xpath_double('12','sum(a/b)') FROM src LIMIT 1; | 3.0 |
xpath_float | 返回与xpath表达式匹配的浮点值 | SELECT xpath_float('12','sum(a/b)') FROM src LIMIT 1; | 3.0 |
xpath_int | 返回与xpath表达式匹配的整数值 | SELECT xpath_int('12','sum(a/b)') FROM src LIMIT 1; | 3 |
xpath_long | 返回与xpath表达式匹配的长值 | SELECT xpath_long('12','sum(a/b)') FROM src LIMIT 1; | 3 |
xpath_number | 返回与xpath表达式匹配的双精度值 | SELECT xpath_number('12','sum(a/b)') FROM src LIMIT 1; | 3.0 |
xpath_short | 返回与xpath表达式匹配的短值 | SELECT xpath_short('12','sum(a/b)') FROM src LIMIT 1; | 3 |
xpath_string | 返回与xpath表达式匹配的第一个xml节点的文本内容 | SELECT xpath_string('bcc','a/c') FROM src LIMIT 1; | cc' |
Y
函数名 | 函数介绍 | 函数案例 | 测试结果 |
---|---|---|---|
year | 返回日期中的年 | select year('2011-12-08 10:03:01') from lxw_dual; | 2011 |
其他运算符
函数名 | 函数介绍 | 函数案例 | 测试结果 | |
---|---|---|---|---|
! | 和not逻辑操作符含义一致 | select !(true); | FALSE | |
!= | 如果a不等于b,返回真 | select 1 <> 2; | TRUE | |
% | 返回a除以b时的余数 | SELECT 5 % 3 | 2 | |
& | 位与 | SELECT 3 & 5 FROM src LIMIT 1; | 1 | |
* | 乘法 | NULL | NULL | |
+ | 加法 | NULL | NULL | |
- | 减法 | NULL | NULL | |
/ | 除法 | NULL | NULL | |
< | 如果a小于b,返回TRUE | NULL | NULL | |
<= | 如果a不大于b,返回TRUE | NULL | NULL | |
<=> | 对于非空操作数,使用EQUAL(=)操作符返回相同的结果,但如果两个操作数都为空,则返回TRUE,如果其中一个操作数为空,则返回FALSE | NULL | NULL | |
<> | 返回TRUE,如果不等于b,和!=含义一致 | NULL | NULL | |
= | 返回TRUE,如果a等于b和假否则,和==含义一致 | NULL | NULL | |
== | 返回TRUE,如果a等于b和假否则,和=含义一致 | NULL | NULL | |
> | 如果a大于b,返回TRUE | NULL | NULL | |
>= | 如果a不小于b,返回TRUE | NULL | NULL | |
^ | 按位异或 | NULL | NULL | |
| | 位或 | SELECT 3 | 5 FROM src LIMIT 1; | 7 | |
~ | 位否 | SELECT ~ 0 FROM src LIMIT 1; | -1 |
最后
以上就是漂亮小霸王最近收集整理的关于Hive函数词典ABCDEFGHIJLMNOPRSTUVWXY其他运算符的全部内容,更多相关Hive函数词典ABCDEFGHIJLMNOPRSTUVWXY其他运算符内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复