数据湖计算 DLC 数学函数

这篇说说了腾讯云中多种数学和字符串处理函数的语法、支持引擎、使用说明及示例。这些函数涵盖了绝对值、三角函数、对数函数、随机数生成等多个方面,适用于SparkSQL和Presto引擎。数学函数: 文章详细介绍了多种数学函数,如ABS、ACOS、ASIN、ATAN等,说明了它们的返回类型和使用示例。字符串处理函数: 介绍了BIN、CONV、HEX等字符串处理函数,描述了它们的功能和使用方法。随机数和舍入函数: 包括RAN。

相关产品
数据湖计算 DLC 产品页,含版本规格、价格与购买入口。

一、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

赞 (0)
上一篇 4天前
下一篇 4天前