Hive常用函数

  首先要明确的是:hive中的函数包括内置函数和自定义函数;而内置函数又包括:简单函数(map阶段),聚合函数(reduce阶段),集合函数(map阶段),特殊函数。而自定义函数又包括:UDF(map阶段),UDAF(reduce阶段)。

Hive常用函数

 

 

内置函数:

  不一一列举,查看语句如下:

show functions;        -- 查看内置函数

desc function abs;        -- 显示函数的详细信息

desc function entended concat        -- 显示函数的扩展信息

  常用内置函数:

-- 数学函数
round(double d, int n):      返回保留n位小数的近似d值
floor(double d):      返回小于d的最大整值
ceil(double d):       返回大于d的最小整值
rand(int seed):      返回随机数,seed是随机因子
bin(int d):      计算二进制值d的string值

-- 日期函数
to_date(string timestamp):返回时间字符串中的日期部分,如to_date('1970-01-01 00:00:00')='1970-01-01'
current_date:返回当前日期
year(date):返回日期date的年,类型为int如year('2019-01-01')=2019
month(date):返回日期date的月,类型为int,如month('2019-01-01')=1
day(date):  返回日期date的天,类型为int,如day('2019-01-01')=1
weekofyear(date1):返回日期date1位于该年第几周。如weekofyear('2019-03-06')=10
datediff(date1,date2):返回日期date1与date2相差的天数,如datediff('2019-03-06','2019-03-05')=1
date_add(date1,int1):返回日期date1加上int1的日期,如date_add('2019-03-06',1)='2019-03-07'
date_sub(date1,int1):返回日期date1减去int1的日期,如date_sub('2019-03-06',1)='2019-03-05'
months_between(date1,date2):返回date1与date2相差月份,如months_between('2019-03-06','2019-01-01')=2
add_months(date1,int1):返回date1加上int1个月的日期,int1可为负数。如add_months('2019-02-11',-1)='2019-01-11'
last_day(date1):返回date1所在月份最后一天。如last_day('2019-02-01')='2019-02-28'
next_day(date1,day1):返回日期date1的下个星期day1的日期。day1为星期X的英文前两字母如next_day('2019-03-06','MO') 返回'2019-03-11'
trunc(date1,string1):返回日期最开始年份或月份。string1可为年(YYYY/YY/YEAR)或月(MONTH/MON/MM)。如trunc('2019-03-06','MM')='2019-03-01',trunc('2019-03-06','YYYY')='2019-01-01'
unix_timestamp():返回当前时间的unix时间戳,可指定日期格式。如unix_timestamp('2019-03-06','yyyy-mm-dd')=1546704180
from_unixtime():返回unix时间戳的日期,可指定格式。如select from_unixtime(unix_timestamp('2019-03-06','yyyy-mm-dd'),'yyyymmdd')='20190306'

 

上一篇:常用类--BigDecimal、Date 、Calendar、SimpleDateFormat


下一篇:vue/html日期与时间戳互相转换