数学函数概览
DLI所支持的数学函数如数学函数所示。
函数 |
命令格式 |
返回值 |
功能简介 |
---|---|---|---|
abs(DOUBLE a) |
DOUBLE或INT |
取绝对值。 |
|
acos(DOUBLE a) |
DOUBLE |
返回给定角度a的反余弦值。 |
|
asin(DOUBLE a) |
DOUBLE |
返回给定角度a的反正弦值。 |
|
atan(DOUBLE a) |
DOUBLE |
返回给定角度a的反正切值。 |
|
bin(BIGINT a) |
STRING |
返回二进制格式。 |
|
bround(DOUBLE a) |
DOUBLE |
HALF_EVEN模式四舍五入,与传统四舍五入方式的区别在于,对数字5进行操作时,由前一位数字来决定,前一位数字为奇数,增加一位,前一位数字为偶数,舍弃一位。例如:bround(7.5)=8.0,bround(6.5)=6.0 |
|
bround(DOUBLE a, INT d) |
DOUBLE |
保留小数点后d位,d位之后数字以HALF_EVEN模式四舍五入。与传统四舍五入方式的区别在于,对数字5进行操作时,由前一位数字来决定,前一位数字为奇数,增加一位,前一位数字为偶数,舍弃一位。例如:bround(8.25, 1) = 8.2, bround(8.35, 1) = 8.4。 |
|
cbrt(DOUBLE a) |
DOUBLE |
返回a的立方根。 |
|
ceil(DOUBLE a) |
DECIMAL |
将参数向上舍入为最接近的整数。例如:ceil(21.2),返回22。 |
|
conv(BIGINT num, INT from_base, INT to_base), conv(STRING num, INT from_base, INT to_base) |
STRING |
进制转换,将from_base进制下的num转化为to_base进制下面的数。例如:将5从十进制转换为四进制,conv(5,10,4)=11。 |
|
cos(DOUBLE a) |
DOUBLE |
返回给定角度a的余弦值。 |
|
cot1(DOUBLE a) |
DOUBLE或DECIMAL类型 |
计算number的余切函数,输入为弧度值。 |
|
degrees(DOUBLE a) |
DOUBLE |
返回弧度所对应的角度。 |
|
e() |
DOUBLE |
返回e的值。 |
|
exp(DOUBLE a) |
DOUBLE |
返回e的a次方。 |
|
factorial(INT a) |
BIGINT |
返回a的阶乘。 |
|
floor(DOUBLE a) |
BIGINT |
对给定数据进行向下舍入最接近的整数。例如:floor(21.2),返回21。 |
|
greatest(T v1, T v2, ...) |
DOUBLE |
返回列表中的最大值。 |
|
hex(BIGINT a) hex(STRING a) |
STRING |
将整数或字符转换为十六进制格式。 |
|
least(T v1, T v2, ...) |
DOUBLE |
返回列表中的最小值。 |
|
ln(DOUBLE a) |
DOUBLE |
返回给定数值的自然对数。 |
|
log(DOUBLE base, DOUBLE a) |
DOUBLE |
返回给定底数及指数返回自然对数。 |
|
log10(DOUBLE a) |
DOUBLE |
返回给定数值的以10为底自然对数。 |
|
log2(DOUBLE a) |
DOUBLE |
返回给定数值的以2为底自然对数。 |
|
median(colname) |
DOUBLE或DECIMAL |
计算中位数。 |
|
negative(INT a) |
DECIMAL或INT |
返回a的相反数,例如negative(2),返回-2。 |
|
percentile(colname,DOUBLE p) |
DOUBLE或ARRAY |
计算精确百分位数,适用于小数据量。先对指定列升序排列,然后取精确的第p位百分数。p必须在0和1之间。 |
|
percentile_approx (colname,DOUBLE p) |
DOUBLE或ARRAY |
计算近似百分位数,适用于大数据量。先对指定列升序排列,然后取第p位百分数对应的值。 |
|
pi() |
DOUBLE |
返回pi的值。 |
|
pmod(INT a, INT b) |
DECIMAL或INT |
返回a除b的余数的绝对值。 |
|
positive(INT a) |
DECIMAL、DOUBLE或INT |
返回a的值,例如positive(2),返回2。 |
|
pow(DOUBLE a, DOUBLE p), power(DOUBLE a, DOUBLE p) |
DOUBLE |
返回a的p次幂。 |
|
radians(DOUBLE a) |
DOUBLE |
返回角度所对应的弧度。 |
|
rand(INT seed) |
DOUBLE |
返回大于或等于0且小于1的平均分布随机数。如果指定种子seed,则会得到一个稳定的随机数序列。 |
|
round(DOUBLE a) |
DOUBLE |
四舍五入。 |
|
round(DOUBLE a, INT d) |
DOUBLE |
小数部分d位之后数字四舍五入,例如round(21.263,2),返回21.26。 |
|
shiftleft(BIGINT a, INT b) |
INT |
有符号左边移,将a的二进制数按位左移b位。 |
|
shiftright(BIGINT a, INT b) |
INT |
有符号右移,将a的二进制数按位右移b位。 |
|
shiftrightunsigned(BIGINT a, INT b) |
INT |
无符号右移,将a的二进制数按位右移b位。 |
|
sign(DOUBLE a) |
DOUBLE |
返回a所对应的正负号,a为正返回1.0,a为负,返回-1.0,否则返回0.0。 |
|
sin(DOUBLE a) |
DOUBLE |
返回给定角度a的正弦值。 |
|
sqrt(DOUBLE a) |
DOUBLE |
返回数值的平方根。 |
|
tan(DOUBLE a) |
DOUBLE |
返回给定角度a的正切值。 |