Hive(三)-内置函数-数学函数

Return Type

Name (Signature)

Description

DOUBLE

round(DOUBLE a)

返回对a四舍五入的BIGINT值

DOUBLE

round(DOUBLE a, INT d)

返回DOUBLE型的保留d位小数的DOUBLW型的近似值

DOUBLE bround(DOUBLE a) 银行家舍入法(1~4:舍,6~9:进,5->前位数是偶:舍,5->前位数是奇:进)
DOUBLE bround(DOUBLE a, INT d) 银行家舍入法,保留d位小数

BIGINT

floor(DOUBLE a)

向下取整,最数轴上最接近要求的值的左边的值  如:6.10->6   -3.4->-4

BIGINT

ceil(DOUBLE a),

ceiling(DOUBLE a)

求其不小于小给定实数的最小整数如:ceil(6) = ceil(6.1)= ceil(6.9) = 6

DOUBLE

rand(),

rand(INT seed)

每行返回一个DOUBLE型随机数seed是随机因子

DOUBLE

exp(DOUBLE a),

exp(DECIMAL a)

返回e的a幂次方, a可为小数

DOUBLE

ln(DOUBLE a),

ln(DECIMAL a)

以自然数为底d的对数,a可为小数

DOUBLE

log10(DOUBLE a),

log10(DECIMAL a)

以10为底d的对数,a可为小数

DOUBLE

log2(DOUBLE a),

log2(DECIMAL a)

以2为底数d的对数,a可为小数

DOUBLE

log(DOUBLE base, DOUBLE a)

log(DECIMAL base, DECIMAL a)

以base为底的对数,base 与 a都是DOUBLE类型

DOUBLE

pow(DOUBLE a, DOUBLE p),

power(DOUBLE a, DOUBLE p)

计算a的p次幂

DOUBLE

sqrt(DOUBLE a),

sqrt(DECIMAL a)

计算a的平方根

STRING

bin(BIGINT a)

算二进制a的STRING类型,a为BIGINT类型

STRING

hex(BIGINT a),

hex(STRING a),

hex(BINARY a)

计算十六进制a的STRING类型,如果a为STRING类型就转换成字符相对应的十六进制

BINARY

unhex(STRING a)

hex的逆方法

STRING

conv(BIGINT num, INT from_base, INT to_base),

conv(STRING num, INT from_base, INT to_base)

将GIGINT/STRING类型的num从from_base进制转换成to_base进制

DOUBLE

abs(DOUBLE a)

计算a的绝对值

INT or DOUBLE

pmod(INT a, INT b),

pmod(DOUBLE a, DOUBLE b)

a对b取模

DOUBLE

sin(DOUBLE a),

sin(DECIMAL a)

求a的正弦值

DOUBLE

asin(DOUBLE a),

asin(DECIMAL a)

求d的反正弦值

DOUBLE

cos(DOUBLE a),

cos(DECIMAL a)

求余弦值

DOUBLE

acos(DOUBLE a),

acos(DECIMAL a)

求反余弦值

DOUBLE

tan(DOUBLE a),

tan(DECIMAL a)

求正切值

DOUBLE

atan(DOUBLE a),

atan(DECIMAL a)

求反正切值

DOUBLE

degrees(DOUBLE a),

degrees(DECIMAL a)

奖弧度值转换角度值

DOUBLE

radians(DOUBLE a),

radians(DOUBLE a)

将角度值转换成弧度值

INT or DOUBLE

positive(INT a),

positive(DOUBLE a)

返回a

INT or DOUBLE

negative(INT a),

negative(DOUBLE a)

返回a的相反数

DOUBLE or INT

sign(DOUBLE a),

sign(DECIMAL a)

如果a是正数则返回1.0,是负数则返回-1.0,否则返回0.0

DOUBLE

e()

数学常数e

DOUBLE

pi()

数学常数pi

BIGINT factorial(INT a) 求a的阶乘
DOUBLE cbrt(DOUBLE a) 求a的立方根

 

INT BIGINT

shiftleft(TINYINT|SMALLINT|INT a, INT b)

shiftleft(BIGINT a, INT b)

按位左移

INT

BIGINT

shiftright(TINYINT|SMALLINT|INT a, INTb)

shiftright(BIGINT a, INT b)

按拉右移

INT

BIGINT

shiftrightunsigned(TINYINT|SMALLINT|INTa, INT b),

shiftrightunsigned(BIGINT a, INT b)

无符号按位右移(<<<)

T greatest(T v1, T v2, ...) 求最大值
T least(T v1, T v2, ...)
求最小值

猜你喜欢

转载自www.cnblogs.com/sunziying/p/9068724.html