Hive零基础从入门到实战 进阶篇(一) HiveQL:常用数学函数

目录

 

前言

1. 常用数学函数表

2. 函数功能演示

2.1 四舍五入 round

2.2 向下取整 floor

2.3 向上取整 ceil

2.4 随机数 rand

2.5 求n次幂 pow

2.6 求平方根 sqrt

2.7 求绝对值 abs


 

前言

本篇开始进入Hive进阶篇的总结,进阶篇计划介绍Hive的各类函数以及调优。在入门篇(十五)曾总结过一些常用的聚合函数,剩余的不常用聚合函数后续在进阶篇中也会逐步介绍。本篇博客主要总结Hive中的常用的数学函数。

 

1. 常用数学函数表

返回数值类型 函数名\所需参数\参数数据类型 描述

DOUBLE

round(DOUBLE a)

返回对a四舍五入的整数值

DOUBLE

round(DOUBLE a, INT d)

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

BIGINT

floor(DOUBLE a)

向下取整  如:6.10->6   -3.4->-4

BIGINT

ceil(DOUBLE a),

ceiling(DOUBLE a)

向上取整

DOUBLE

rand(),

rand(INT seed)

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

DOUBLE

pow(DOUBLE a, DOUBLE p), power(DOUBLE a, DOUBLE p)

计算a的p次幂

DOUBLE

sqrt(DOUBLE a)

计算a的平方根

DOUBLE

abs(DOUBLE a)

计算a的绝对值

DOUBLE

sin(DOUBLE a)

计算a的正弦值

DOUBLE

asin(DOUBLE a)

计算a的反正弦值

DOUBLE

cos(DOUBLE a)

计算a的余弦值

DOUBLE

acos(DOUBLE a)

计算a的反余弦值

DOUBLE

tan(DOUBLE a)

计算a的正切值

DOUBLE

atan(DOUBLE a)

计算a的反正切值

INT or DOUBLE

negative(INT a),

negative(DOUBLE a)

计算a的相反数

DOUBLE or INT

sign(DOUBLE a)

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

DOUBLE

e()

数学常数e

DOUBLE

pi()

数学常数pi,3.1415926……

BIGINT factorial(INT a) 计算a的阶乘,Hive1.2.0后才有
DOUBLE cbrt(DOUBLE a) 计算a的立方根,Hive1.2.0后才有

DOUBLE

exp(DOUBLE a)

计算e的a幂次方, a可为小数

DOUBLE

ln(DOUBLE a)

计算以e为底的对数,a可为小数

DOUBLE

log10(DOUBLE a)

计算以10为底的对数,a可为小数

DOUBLE

log2(DOUBLE a)

计算以2为底数的对数,a可为小数

DOUBLE

log(DOUBLE base, DOUBLE a)

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

 

2. 函数功能演示

所有的函数所传的参数都可以是字段或者自定义的数据,这里为了演示方便,统一使用自定义数据。

2.1 四舍五入 round

round(DOUBLE a)

功能:传入DOUBLE类型的参数a,返回对a四舍五入的整数值,但返回的数据类型是DOUBLE,所以会有 .0

hive (app)> select round(2.5);

3.0

hive (app)> select round(2.2);

2.0

round(DOUBLE a,INT d)

功能:传入DOUBLE类型的参数a,INT类型的参数d,返回保留d位小数的DOUBLE型的近似值

hive (app)> select round(2.234,2);

2.23

hive (app)> select round(2.235,2);

2.24

2.2 向下取整 floor

floor(DOUBLE a)

功能:传入DOUBLE类型的参数a,返回<=a的最大的BIGINT型整数

hive (app)> select floor(2.2);

2

hive (app)> select floor(2.9);

2

2.3 向上取整 ceil

ceil(DOUBLE a)

ceiling(DOUBLE a)

功能:传入DOUBLE类型的参数a,返回>=a的最小的BIGINT型整数

hive (app)> select ceil(2.9);

3

hive (app)> select ceil(2.1);

3

hive (app)> select ceiling(2.9);

3

hive (app)> select ceiling(2.1);

3

2.4 随机数 rand

rand()

rand(INT seed)

功能:每行返回一个DOUBLE型随机数,seed是随机种子,设置seed可以使生成的随机数固定,否则每次生成的随机数是不同的。

hive (app)> select rand();

0.6856598085583834

hive (app)> select rand();

0.5677221950777468

hive (app)> select rand(1);

0.7308781907032909

hive (app)> select rand(1);

0.7308781907032909

2.5 求n次幂 pow

pow(DOUBLE a, DOUBLE n)

功能:传入DOUBLE类型的参数a和n(整型会被自动转为DOUBLE),返回DOUBLE类型的a的n次幂

hive (app)> select pow(2,3);

8.0

2.6 求平方根 sqrt

sqrt(DOUBLE a)

功能:传入DOUBLE类型的参数a(整型会被自动转为DOUBLE),返回DOUBLE类型的a的平方根

hive (app)> select sqrt(4);

2.0

hive (app)> select sqrt(9);

3.0

2.7 求绝对值 abs

abs(DOUBLE a)

功能:传入DOUBLE类型的参数a(整型会被自动转为DOUBLE),返回DOUBLE类型的a的绝对值

hive (app)> select abs(-2);

2

 


能看到这里的同学,就右上角点个赞吧,3Q~

你可能感兴趣的:(Hive零基础从入门到实战 进阶篇(一) HiveQL:常用数学函数)