数学函数概览
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 | 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的正切值。 |

