微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

hive函数必背大全

hive aide_941 2℃ 0评论

hive必背函数

版权
文章目录
数字函数:
round
floor
ceil
rand
exp
pow
sqrt
abs
pmod
negative
sign
greatest
least
集合函数
size
map_keys
map_values
array_contains
sort_array
日期函数
unix_timestamp
from_unixtime
to_date
year
month
day
hour
minute
second
weekofyear
datediff
date_add
date_sub
current_date
current_timestamp
add_months
last_day
next_day
trunc
months_between
date_format
条件函数
if
nvl
COALESCE
CASE
isnull
isnotnull
字符函数
concat
concat_ws
find_in_set
instr
length
locate
lower
upper
trim
split
substring
regexp_replace
repeat
reverse
str_to_map
聚合函数
数字函数:
round
round(DOUBLE a) 返回对a四舍五入的BIGINT值

round(DOUBLE a, INT d) 返回double型a保留d位小数(四舍五入)

floor
floor(DOUBLE a) 向下取整

ceil
ceil(DOUBLE a)/ceiling(DOUBLE a) 向上取最小整数

rand
rand() 返回一个0-1之间的随机数

exp
exp(DOUBLE a) 返回e的a次方幂 a可以是小数

pow
pow(DOUBLE a, DOUBLE p) 计算a的p次方

sqrt
sqrt(DOUBLE a) 计算a的平方根

abs
abs(DOUBLE a) 计算a的绝对值

pmod
pmod(INT a, INT b), a对b取模

negative
negative(INT a),返回a的相反数

sign
sign(DOUBLE a), 如果a是正数则返回1.0,是负数则返回-1.0,否则返回0.0

greatest
greatest(int a , int b , …) 返回最大值

least
least(int a , int b) 返回最小值

集合函数
size
size(Map<K.V>) 求map的长度

size(Array) 求数组长度

map_keys
map_keys(Map<K.V>) 返回map中的所有key

map_values
map_values(Map<K.V>) 返回map中的所有value

array_contains
array_contains(Array, value) 查找数组中是否含有value 有 返回true 否则false

sort_array
sort_array(Array) 按自然顺序对数组进行排序并返回

日期函数
unix_timestamp
unix_timestamp() 获取本地时区下的时间戳

unix_timestamp(string date) 将时间字符串转换为时间戳 (时间字符串要写到秒)

unix_timestamp(string date) 将指定时间字符串格式字符串转换成Unix时间戳,如果格式不对返回0

from_unixtime
from_unixtime(bigint unixtime[, string format]) 将时间戳转换成format格式

to_date
to_date(string timestamp) 返回时间字符串的日期部分

year
year(string date) 返回时间字符串的年份部分

month
month(string date) 返回时间字符串的月份部分

day
day(string date) 返回时间字符串的天

hour
hour(string date) 返回时间字符串的小时

minute
minute(string date) 返回时间字符串的分钟

second
second(string date) 返回时间字符串的秒

weekofyear
weekofyear(string date) 返回时间字符串位于一年中的第几个周内

datediff
datediff(string enddate, string startdate) 计算开始时间startdate到结束时间enddate相差的天数

date_add
date_add(string startdate, int days) 从开始时间startdate加上days

date_sub
date_sub(string startdate, int days) 从开始时间startdate减去days

current_date
current_date 返回当前时间日期(加不加括号都行)

current_timestamp
current_timestamp 返回当前时间

add_months
add_months(string start_date, int num_months) 返回当前时间下再增加num_months个月的日期

last_day
last_day(string date) 返回这个月的最后一天的日期

next_day
next_day(string start_date, string day_of_week) 返回当前时间的下一个星期X所对应的日期

trunc
trunc(string date, string format) 返回时间的最开始年份或月份

months_between
months_between(date1, date2) 返回date1与date2之间相差的月份,如date1>date2,则返回正,如果date1<date2,则返回负,否则返回0.0

date_format
date_format(date/timestamp/string ts, string fmt)

条件函数
if
if(boolean testCondition, T valueTrue, T valueFalseOrNull) 如果testCondition 为true就返回valueTrue,否则返回valueFalseOrNull

nvl
nvl(T value, T default_value) 如果value值为NULL就返回default_value,否则返回value

COALESCE
COALESCE(T v1, T v2, …) 返回第一非null的值,如果全部都为NULL就返回NULL

CASE
CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END 如果a=b就返回c,a=d就返回e,否则返回f

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

字符函数
concat
concat(string|binary A, string|binary B…) 对二进制字节码或字符串按次序进行拼接

concat_ws
concat_ws(string SEP, string A, string B…) 与concat()类似,但使用指定的分隔符进行分隔

concat_ws(string SEP, array) 拼接Array中的元素并用指定分隔符进行分隔

find_in_set
find_in_set(string str, string strList) 返回以逗号分隔的字符串中str出现的位置,如果参数str为逗号或查找失败将返回0,如果任一参数为NULL将返回NULL

instr
instr(string str, string substr) 查找字符串str中子字符串substr出现的位置,如果查找失败将返回0,如果任一参数为Null将返回null,注意位置为从1开始的

length
length(string A) 返回字符串的长度

locate
locate(string substr, string str[, int pos]) 查找字符串str中的pos位置后字符串substr第一次出现的位置

lower
lower(string A)/ lcase(string A) 将字符串A的所有字母转换成小写字母

upper
upper(string A) 将字符串A的所有字母转换成大写字母

trim
trim() 去空格

split
split(string str,’’)用指定字符分割字符串返回数组

substring
substring(string str,int a,int b)截取字符串 从下边7开始截5个

regexp_replace
regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT) 按照Java正则表达式PATTERN将字符串INTIAL_STRING中符合条件的部分成REPLACEMENT所指定的字符串,如里REPLACEMENT这空的话,抽符合正则的部分将被去掉

repeat
repeat(string str, int n) 重复输出n次字符串str

reverse
reverse(string A) 反转字符串

str_to_map
str_to_map(text[, delimiter1, delimiter2]) 将字符串str按照指定分隔符转换成Map,第一个参数是需要转换字符串,第二个参数是键值对之间的分隔符,默认为逗号;第三个参数是键值之间的分隔符,默认为"="

聚合函数
count(*) 统计总行数,包括含有NULL值的行
sum(col) 表示求指定列的和
sum(DISTINCT col) 表示求去重后的列的和
avg(col), avg(DISTINCT col)
avg(col),表示求指定列的平均值,avg(DISTINCT col)表示求去重后的列的平均值
min(col) max(col) 求指定列的最小值/ 最大值
var_pop(col) 求指定列数值的方差

 

转载请注明:SuperIT » hive函数必背大全

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!