hive函数(持续更新中)⼀、数值计算
对数函数: log
double  log(double base, double a)
说明:返回以base为底的a的对数
例: select log(4,256) ;
4.0
幂运算函数: pow
double pow(double a, double p)
说明:返回a的p次幂
例: select pow(2.1,0.5) ;
1.449137674618944
datediff是字符型函数
进制转换函数: conv
string conv(bigint /string num, int from_base, int to_base)
说明:将数值num从from_base进制转化到to_base进制
例:select conv('abc',16,10);
2748
正取余函数: pmod
int  pmod(int a, int b),
double pmod(double a, double b)
说明:返回正的a除以b的余数
例:select pmod(-9,4);
3
[反]正弦函数: [a]sin
double  [a]sin(double/ decimal a)
说明:返回a的[反]正弦值
例:select sin(0.8);
0.7173560908995228
例:select asin(0.7173560908995228);
0.8
[反]余弦函数: [a]cos
double  [a]cos (double/ decimal a)
说明:返回a的[反]余弦值
例:select cos(0.8);
0.6967067093471654
例:select acos(0.6967067093471654 );
0.8
[反]正切函数: [a]tan
double  [a]tan (double/ decimal a)
说明:返回a的[反]正切值
例:select tan(0.8);
1.0296385570503641
例:select atan(1.0296385570503641 );
0.8
弧度转⾓度函数: degrees
double degrees (double/ decimal a)
说明:将弧度a转为⾓度
例:select degree( pi());
180.0
⾓度转弧度函数: radians
double radians (double/decimal a)
说明:将弧度a转为⾓度
例:select radians(90);
1.5707963267948966
positive函数: positive
int positive(int a), double positive(double a)说明:返回a
例:select positive(-10.56) ;
-10.56
negative函数: negative
int  negative(int a), double negative(double a)说明:返回-a
例:select negative(-5) ;
5
sign函数: sign
int sign (double a),double sign (decimal a)
说明:返回-[+]1
例:select sign(-5) ;
-1
pi()函数: pi
double pi()
说明:返回
例:select pi();
3.141592653589793
e()函数: e
double e()
说明:返回
例:select e();
2.718281828459045
greatest()函数:greatest
double greatest (T...vs)
说明:返回vs中的最⼤值
例:select greatest(1,2,5.4,-2);
5.4
least()函数:least
double least (T...vs)
说明:返回vs中的最⼩值
例:select least(1,2,5.4,-2);
-2
财务舍⼊法函数:bround
double bround (double a , int d)
说明::四舍六⼊五考虑,五后⾮空就进⼀,五后为空看奇偶,五前为偶应舍去,五前为奇要进⼀
例:select bround(2.355,2);
2.36
select bround(2.355,3);
2.35
select bround(2.3465,3);
factorial()函数
int factorial (int a)
说明:20以内阶乘
例:select factorial(4)
左位移函数:shiftleft()
bigint  shiftleft(bigint  a, int b)
说明:a左移b位
例:select shiftleft(2,3)
右位移函数:shiftright()
bigint  shiftright(bigint  a, int b)
说明:a右移b位
例:select shiftright(2,3)
⼆、集合函数
长度函数size()
int  size(Map(K,V)/Array<T>)
说明:返回map/array类型的长度
例:select size(map('100','tom','101','mary'));
2
select size(array('100','101','102','103')) ;
4
map_keys()
Array<K> map_keys(Map<K,V>)
说明:以数组形式返回map所有键
例:select map_keys(map('100','tom','101','mary'));["100","101"]
map_values()
Array<V> map_values(Map<K,V>)
说明:以数组形式返回map所有值
例:select map_values(map('100','tom','101','mary'));["tom","mary"]
array_contains()
boolean  array_contains(Array<T>, value)
说明:如该数组Array<T>包含value返回true。,否则返回false
例:select array_contains(array('103','101','100','102'),'104'); false
数组排序函数sort_array()
Array<T> sort_array(Array<T>)
说明:按⾃然顺序对数组进⾏排序并返回
例:select sort_array(array('103','101','100','102'));["100","101","102","103"]
array类型构建array()
Array<T> );
说明根据输⼊的参数构建数组array类型
例:select array('aa','ss','dd'); ["aa","ss","dd"]
map类型构建map()
Map<K,V>  map (k1, v1, k2, v2,…);
说明:根据输⼊的key和value对构建map类型
例:select map('name','hury','age','22'); {"name":"hury","age":"22"}
struct类型构建struct()
Struct<....> struct(v1, v2, v3,…)
说明:根据输⼊的参数构建结构体struct类型
例:select struct('name',22);
{"col1":"name","col2":22}
三、类型转换
类型转换函数cast()
type  cast(expr as <type>)
说明:转换expr类型
例:select cast("1" as bigint) ;
1(bigint)
四、⽇期函数
UNIX时间戳转⽇期函数:from_unixtime
string    from_unixtime(bigint time,string time_format)
说明:转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式
例:select unix_timestamp();
1605180154
select from_unixtime(1605180154,'yyyy-MM-dd');
2020-11-12
select from_unixtime(1605180154,'yyyy-MM-dd');
11
data_format()
string  date_format(date/timestamp/string date,string format)
说明:从符合⽇期格式的字符串提取想要内容
例:select date_format('1998-10-17  22:22:22','MM');
10
current_date()
string  current_date()
说明:提取当前系统时间年⽉⽇
例:select current_date();
2020-12-10
todate()
string  todate(string timestamp)
说明:提取指定时间年⽉⽇
例:select to_date('2011-12-08 10:03:01')
2011-12-08
current_timestamp()
string  current_timestamp()
说明:提取当前系统时间年⽉⽇时分秒毫秒
例:select current_timestamp();
2020-12-10 14:35:22.392
unix_timestamp()
bigint  unix_timestamp()
说明:提取当前系统时间戳
例:select unix_timestamp( '2020-12-10 14:12:35.676');
| 1607580755
date_add()
string  date_add(string date,int days)
说明:提取指定⽇期的⼏天后\前⽇期
例:select date_add(current_date(),2);
2020-12-12
select date_add(current_date(),-2);
2020-12-08
add_months()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。