一、ABS
·函数语法:
ABS(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的绝对值
·返回类型:与<expr>一致
·示例:
> SELECT abs(-1); 1
二、ACOS
·函数语法:
ACOS(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的反余弦
·返回类型:double
·示例:
> SELECT acos(1); 0.0> SELECT acos(2); NaN
三、ACOSH
·函数语法:
ACOSH(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的反双曲余弦值
·返回类型:double
·示例:
> SELECT acosh(1); 0.0> SELECT acosh(0); NaN
四、ASIN
·函数语法:
ASIN(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的反正弦
·返回类型:double
·示例:
> SELECT asin(0); 0.0> SELECT asin(2); NaN
五、ASINH
·函数语法:
ASINH(<expr> integer|double|decimal)
·支持引擎:SparkSQL
·使用说明:返回expr的反双曲正弦值。
·返回类型:double
·示例:
> SELECT asinh(0); 0.0
六、ATAN
·函数语法:
ATAN(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的反正切
·返回类型:double
·示例:
> SELECT atan(0); 0.0
七、ATAN2
·函数语法:
ATAN2(<x>, integer|double|decimal, <y> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回平面的正 x 轴与坐标给定的点之间的弧度角
·返回类型:double
·示例:
> SELECT atan2(0, 0); 0.0
八、ATANH
·函数语法:
ATANH(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回 expr 的反双曲正切。
·返回类型:double
·示例:
> SELECT atanh(0); 0.0> SELECT atanh(2); NaN
九、BIN
·函数语法:
BIN(<expr> integer)
·支持引擎:SparkSQL、Presto
·使用说明:返回以二进制表示的长值expr的字符串表示形式。
·返回类型:string
·示例:
> SELECT bin(13); 1101> SELECT bin(-13); 1111111111111111111111111111111111111111111111111111111111110011
十、BROUND
·函数语法:
BROUND(<expr> integer|double|decimal, <d> integer)
·支持引擎:SparkSQL、Presto
·使用说明:返回 expr 使用 HALF_EVEN 舍入模式舍入到d位小数
·返回类型:decimal
·示例:
> SELECT bround(2.5, 0); 2
十一、CBRT
·函数语法:
CBRT(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的立方根。
·返回类型:double
·示例:
> SELECT cbrt(27.0); 3.0
十二、CEIL
·函数语法:
CEIL(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回不小于expr的最小整数
·返回类型:integer
·示例:
> SELECT ceil(-0.1); 0> SELECT ceil(5); 5
十三、COS
·函数语法:
COS(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的余弦
·返回类型:double
·示例:
> SELECT cos(0); 1.0
十四、COSH
·函数语法:
COSH(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的双曲余弦
·返回类型:double
·示例:
> SELECT cosh(0); 1.0
十五、CONV
·函数语法:
CONV(<num> bigint|string, <from_base> integer, <to_base> integer)
·支持引擎:SparkSQL、Presto
·使用说明:将num从from_base转换为to_base
·返回类型:string
·示例:
> SELECT conv('100', 2, 10); 4> SELECT conv(-10, 16, -10); -16
十六、DEGREES
·函数语法:
DEGREES(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:弧度转化为角度
·返回类型:double
·示例:
> SELECT degrees(3.141592653589793); 180.0
十七、E
·函数语法:
E()
·支持引擎:SparkSQL、Presto
·使用说明:返回欧拉常数
·返回类型:double
·示例:
> SELECT e(); 2.718281828459045
十八、EXP
·函数语法:
EXP(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回欧拉常数e的expr次方
·返回类型:double
·示例:
> SELECT exp(0); 1.0
十九、EXPM1
·函数语法:
EXPM1(<expr> integer|double|decimal)
·支持引擎:SparkSQL
·使用说明:返回EXP(expr)-1
·返回类型:double
·示例:
> SELECT expm1(0); 0.0
20、FLOOR
·函数语法:
FLOOR(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回不大于expr的最大整数
·返回类型:integer
·示例:
> SELECT floor(-0.1); -1> SELECT floor(5); 5
21、FACTORIAL
·函数语法:
FACTORIAL(<expr> integer)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的阶乘。 expr为[0..20]。 否则为NULL。
·返回类型:bigint
·示例:
> SELECT factorial(5); 120
22、HEX
·函数语法:
HEX(<expr> bigint|string)
·支持引擎:SparkSQL、Presto
·使用说明:以十六进制返回expr
·返回类型:string
·示例:
> SELECT hex(17); 11> SELECT hex('Spark SQL'); 537061726B2053514C
23、HYPOT
·函数语法:
HYPOT(<expr1> integer|double|decimal, <expr2> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回sqrt(pow(expr1, 2) + pow(expr2, 2))
·返回类型:double
·示例:
> SELECT hypot(3, 4); 5.0
24、LOG
·函数语法:
LOG(<base> integer|double|decimal, <expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr以base为底数的对数。
·返回类型:double
·示例:
> SELECT log(10, 100); 2.0
25、LOG10
·函数语法:
LOG10(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr以10为底数的对数。
·返回类型:double
·示例:
> SELECT log10(10); 1.0
26、LOG1P
·函数语法:
LOG1P(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回log(1 + expr)
·返回类型:double
·示例:
> SELECT log1p(0); 0.0
27、LOG2
·函数语法:
LOG2(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回以2为底的expr的对数。
·返回类型:double
·示例:
> SELECT log2(2); 1.0
28、LN
·函数语法:
LN(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的自然对数(以e为底)。
·返回类型:double
·示例:
> SELECT ln(1); 0.0
29、MOD
·函数语法:
MOD(<expr1> integer|double|decimal, <expr2> integer|double|decimal)<expr1> MOD <expr2>
·支持引擎:SparkSQL、Presto
·使用说明:返回expr1/expr2之后的余数。
·返回类型:double|integer
·示例:
> SELECT 2 % 1.8; 0.2> SELECT MOD(2, 1.8); 0.2
30、NEGATIVE
·函数语法:
NEGATIVE(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的负数
·返回类型:与expr一致
·示例:
> SELECT negative(1); -1
31、PI
·函数语法:
PI()
·支持引擎:SparkSQL、Presto
·使用说明:返回PI
·返回类型:double
·示例:
> SELECT pi(); 3.141592653589793
32、PMOD
·函数语法:
PMOD(<expr1> integer|double|decimal, <expr2> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr1 mod expr2的正值。
·返回类型:double
·示例:
> SELECT pmod(10, 3); 1> SELECT pmod(-10, 3); 2
33、POSITIVE
·函数语法:
POSITIVE(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr
·返回类型:与expr一致
·示例:
> SELECT positive(1); 1
34、POWER
·函数语法:
POWER(<base> integer|double|decimal, <number> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回base的number次方
·返回类型:double
·示例:
> SELECT power(2, 3); 8.0
35、POW
·函数语法:
POW(<base> integer|double|decimal, <number> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回base的number次方
·返回类型:double
·示例:
> SELECT pow(2, 3); 8.0
36、RADIANS
·函数语法:
RADIANS(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:将度转换为弧度
·返回类型:double
·示例:
> SELECT radians(180); 3.141592653589793
37、RINT
·函数语法:
RINT(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回与参数值最近且等于数学整数的双精度值
·返回类型:double
·示例:
> SELECT rint(12.3456); 12.0
38、ROUND
·函数语法:
ROUND(<expr> integer|double|decimal, <d> integer)
·支持引擎:SparkSQL、Presto
·使用说明:使用半向上舍入模式将expr舍入到d位小数。
·返回类型:double
·示例:
> SELECT round(2.5, 0); 3
39、SHIFTLEFT
·函数语法:
SHIFTLEFT(<base> integer|double|decimal, <expr> integer)
·支持引擎:SparkSQL、Presto
·使用说明:按位向左移位。
·返回类型:int |bigint
·示例:
> SELECT shiftleft(2, 1); 4
40、SHIFTRIGHT
·函数语法:
SHIFTRIGHT(<base> integer|double|decimal, <expr> integer)
·支持引擎:SparkSQL、Presto
·使用说明:按位向右移位。
·返回类型:int |bigint
·示例:
> SELECT shiftright(4, 1); 2
41、SHIFTRIGHTUNSIGNED
·函数语法:
SHIFTRIGHTUNSIGNED(<base> integer|double|decimal, <expr> integer)
·支持引擎:SparkSQL、Presto
·使用说明:按位无符号右移。
·返回类型:int |bigint
·示例:
> SELECT shiftrightunsigned(4, 1); 2
42、SIGN
·函数语法:
SIGN(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:当expr为负、0或正时,返回-1.0、0.0或1.0。
·返回类型:double
·示例:
> SELECT sign(40); 1.0
43、SIGNUM
·函数语法:
SIGNUM(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:当expr为负、0或正时,返回-1.0、0.0或1.0。
·返回类型:double
·示例:
> SELECT signum(40); 1.0
44、SIN
·函数语法:
SIN(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的正弦值
·返回类型:double
·示例:
> SELECT sin(0); 0.0
45、SINH
·函数语法:
SINH(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的双曲正弦
·返回类型:double
·示例:
> SELECT sinh(0); 0.0
46、SQRT
·函数语法:
SQRT(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的平方根
·返回类型:double
·示例:
> SELECT sqrt(4); 2.0
47、TAN
·函数语法:
TAN(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的正切值
·返回类型:double
·示例:
> SELECT tan(0); 0.0
48、COT
·函数语法:
COT(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回表达式的余切
·返回类型:double
·示例:
> SELECT cot(1); 0.6420926159343306
49、TANH
·函数语法:
TANH(<expr> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr的双曲正切
·返回类型:double
·示例:
> SELECT tanh(0); 0.0
50、WIDTH_BUCKET
·函数语法:
WIDTH_BUCKET(<value> integer|double|decimal, <min> integer|double|decimal, <max> integer|double|decimal, <num_backet> integer)
·支持引擎:SparkSQL、Presto
·使用说明:从min到max的等分为num_backet个分组,返回value落入的分组编号
·返回类型:integer
·示例:
> SELECT width_bucket(5.3, 0.2, 10.6, 5); 3> SELECT width_bucket(-2.1, 1.3, 3.4, 3); 0> SELECT width_bucket(8.1, 0.0, 5.7, 4); 5> SELECT width_bucket(-0.9, 5.2, 0.5, 2); 3
51、TRY_ADD
·函数语法:
TRY_ADD(<expr1> integer|double|decimal|date|timestamp, <expr2> integer|double|decimal|date|timestamp)
·支持引擎:SparkSQL、Presto
·使用说明:返回expr1和expr2的总和,溢出时结果为null
·返回类型:integer|double|decimal|date|timestamp
·示例:
> SELECT try_add(1, 2); 3> SELECT try_add(2147483647, 1); NULL> SELECT try_add(date'2021-01-01', 1); 2021-01-02
52、TRY_DIVIDE
·函数语法:
TRY_DIVIDE(<dividend> integer|double|decimal, <divisor> integer|double|decimal)
·支持引擎:SparkSQL、Presto
·使用说明:返回dividend/divisor
·返回类型:double
·示例:
> SELECT try_divide(3, 2); 1.5> SELECT try_divide(2L, 2L); 1.0> SELECT try_divide(1, 0); NULL
53、RAND
·函数语法:
RAND([<seed> integer])
·支持引擎:SparkSQL、Presto
·使用说明:返回一个随机值,该随机值为[0,1]中的值独立且均匀分布。
·返回类型:double
·示例:
> SELECT rand(); 0.9629742951434543> SELECT rand(0); 0.7604953758285915> SELECT rand(null); 0.7604953758285915
54、RANDOM
·函数语法:
RANDOM([<seed> integer])
·支持引擎:SparkSQL、Presto
·使用说明:返回一个随机值,该随机值为[0,1]中的值独立且均匀分布。
·返回类型:double
·示例:
> SELECT rand(); 0.9629742951434543> SELECT rand(0); 0.7604953758285915> SELECT rand(null); 0.7604953758285915
55、RANDN
·函数语法:
RANDN([<seed> integer])
·支持引擎:SparkSQL、Presto
·使用说明:返回一个随机值,其中包含从标准正态分布中提取的独立和同分布(i.i.d.)值。该函数在SPARKSQL与PRESTO中的实现方式不一致,使用相同的seed可能得到不同的结果。
·返回类型:double
·示例:
> SELECT randn(); -0.3254147983080288> SELECT randn(0); 1.6034991609278433> SELECT randn(null); 1.6034991609278433
56、DIV
·函数语法:
<expr1> DIV <expr2>
·支持引擎:SparkSQL
·使用说明:expr1除以expr2
·返回类型:integer
·示例:
> SELECT 3 div 2; 1