hive内置函数大全

在学习hive过程中,熟练使用hive内置函数,可以节省大量时间,在学习之余,将函数基本使用总结汇总一下,方便后续使用查阅,混个脸熟,内置函数271个,结合源码,需要持续学习更新

分享一个全面的函数大全这里

数学函数
返回类型函数名称描述
doubleround(double a)

当输入参数仅有一个时,返回四舍五入的整数, 输入类型可以是数字,字符串: eg:

round(2)->2; round(-5)->-5;

round(2.4)->2;round(2.5)->3;round(-2.4)->-2; round(-2.5)->-3

round('2.4')->2;round('2.5')->3;round('2.4s')->null, 当字符串可以转换为数字,按照数字处理

doubleround(double a,int b)

 返回制定位数的数字,当输入为整形时,指定的位数无效:eg

round(2,2)->2;round(2.1,2)->2.10;round(2.566,2)->2.57:

可以转换为数字的字符串同样适用:round('2.5666',2)->2.57

doublebround(double a)

银行家舍入法(1~4:舍,6~9:进,5->前位数是偶:舍,5->前位数是奇:进)其他与一致

bround(2.5) = 2, bround(3.5) = 4

doublebround(DOUBLE a, INT d)采用银行家舍入法保留小数位数
bigintfloor(double a)

 向下取整,小于a的最大整数

floor(2.1)=floor(2.9)=2

floor(-2.1)=floor(-2.9)=-3

可以转换为数字的字符串同样适用

bigint

ceil(double a)

ceiling(double a)

 向上取整

ceil(2.1)=ceil(2.9)=3

ceiling(-2.1)=ceiling(-2.9)=-2

可以转换为数字的字符串同样适用


6个

doublerand(),rand(int seed)

 产生[0,1)的随机数,可以指定随机因子seed

rand()->0.432234324

doubleexp(double a),exp(decimal a)

 返回e的指定a的幂次方,a可以是小数

exp(0)=1;exp(1)=2.71828

doubleln(double a) 以e为底,a的对数
doublelog10(double a) 以10为底,a的对数
doublelog2(double a) 以2为底,a的对数
doublelog(double a,double b) 以a为底,b的对数;log(2,4)=2.0
double

pow(double a,double b),

 power(double a,double b)

a 的b次方 pow('2.2',3)=10.648
doublesqrt(double a)a的平方根 sqrt(4)=2.0;
stringbin( bigint a) 返回a的二进制表示,a需要为整型,否则报错
stringhex(bigint a),hex(string a),hex(binary a)a的16进制表示,a可以为整形,字符串(字符串对应的16进制)

10个

binaryunhex(string a) 将16进制a转换为对应的二进制
string

conv(bigint num, int a,int b)

conv(string num, int a, int b)

 将num从进制a转换为进制b

eg;conv(5,10,2)=101,conv('101',2,10)=5

doubleabs(double a)a的绝对值
int or double

mod(int a, int b)/mod(double a,double b)

pmod(int a,intb)/pmod(double a, double b)

a对b求余数(取模)
double

sin(double a)

asin(double a)

a的正弦

a的反正弦

double

cos(double a)

acos(double a)

a的余弦

a的反余弦

double

tan(double a)

atan(double a)

a的正切

a的反正切

doubledegrees(double a) 将弧度值转换为角度值degrees(3.14)=179.9
doubleradians(double a) 将角度值转换为弧度值radians(180)=3.141
int doublepositive(double a) 输入a,返回a.(不知道有什么意义)

10

int or doublenegative(int a)negative (double a) 返回a的相反数
int or doublesign(double a) 如果a是大于0返回1,小于0返回-1,0则返回0
doublee() 返回自然数2.71828
doublepi() 返回pi,3.1415
doublefactorial(int a)a的阶乘
doublecbrt(double a)a的立方
int 

shiftleft(a,b);

shiftright;(a,b)

shiftrightundigned(a,b)

按位左移

按位右移

无符号右移

Tgreatest(T v1, T v2,...) 求最大值greatest(2,3,5)=5
Tleast(T v1,T v2....) 求最小值least(3,5,4)=3
   

9

集合函数
 返回类型 函数名称 描述
 array(v1,v2,....)

 指定数组array(1,2,3)=[1,2,3]

底层实现是arraylist,如果是数字和字符串组合,默认转换为string类型

 map(key1,v1,key2,v2...)

 指定map  map(1,'a',2,'b',3,'c')={1:"a",2:"b",3:"c"}

底层实现是linkedhashmap

int

size(map<k,v>)

size(array<T>)

 返回map或者array的大小
array<K>map_keys(map<K,V>) 返回map的key值集合
array<V>map_values(map<K,V>)) 返回map的value值集合
Booleanarray_contains(array<T>,value)

 判读数组中是否含有值value,结果为true或者false

select array_contains(array(3,5,7,'a'),'3');=true

arraysort_array(array<T>)

 按照自然升序排列数组

 select sort_array(array(3,5,7,'a'))--> ["3","5","7","a"]

   
类型转换函数
binarybinary(string)将输入的值转换成二进制
 cast将expr转换成type类型 如:cast("1" as BIGINT) 将字符串1转换成了BIGINT类型,如果转换失败将返回NULL
   
日期函数

类型


名称

描述

stringfrom_unixtime(bigint unixtime[, string format])

将时间的时间戳转换成format格式

(format可为“yyyy-MM-dd hh:mm:ss”,

“yyyy-MM-dd hh”,“yyyy-MM-dd hh:mm”等等)

如from_unixtime(1250111000,"yyyy-MM-dd") 得到2009-03-12

bigintunix_timestamp()获取本地时区下的时间戳
   
   
   
   
   
   
   
   
条件函数
类型 名称 描述
Tif(boolean testCondition, T valueTrue, T valueFalseOrNull)

类似三元表达式

if(3>2,'a','b');a

Tnvl(T value, T default_value)如果value为空,返回默认值default——value,否则返回value
TCOALESCE(T v1, T v2, ...)返回第一非null的值,如果全部都为NULL就返回NULL  如:COALESCE (NULL,44,55)=44
TCASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END

如果a=b就返回c,a=d就返回e,否则返回f  如CASE 4 WHEN 5  THEN 5

 WHEN 4 THEN 4 ELSE 3 END 将返回4

then可以多个连用

TCASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END

如果a=ture就返回b,c= ture就返回d,否则返回e  如:CASE WHEN  5>0  

THEN 5 WHEN 4>0 THEN 4 ELSE 0 END 将返回5;CASE WHEN  5<0  

THEN 5 WHEN 4<0 THEN 4 ELSE 0 END 将返回0

booleanisnull( a )如果a为null就返回true,否则返回false
booleanisnotnull ( a )如果a为非null就返回true,否则返回false
字符函数
   
   
   
   
   
   
   
   
   
   
   

聚合函数
   
   
   
   
   
   
   
   
   
   
   
表生成函数
   
   
   
   
   
   
   
   
   
   

分享几个内置函数大全连接:本文持续更新:


https://www.cnblogs.com/MOBIN/p/5618747.html#8


https://blog.csdn.net/xuhualei88/article/details/70214502










  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值