Hive内置了很多函数,方便实现对数据的操作。这次我们来看下其中的数学函数。
函数的具体使用,如下所示。
1、round(double a)
hive (default)> select round(2.3);
OK
_c0
2.0
Time taken: 0.081 seconds, Fetched: 1 row(s)
说明:对2.3进行四舍五入,结果为2.0
hive (default)> select round(2.6);
OK
_c0
3.0
Time taken: 0.063 seconds, Fetched: 1 row(s)
说明:对2.6进行四舍五入,结果为3.0
2、round(double a, int d)
hive (default)> select round(5.683,2);
OK
_c0
5.68
Time taken: 0.862 seconds, Fetched: 1 row(s)
说明:对5.683保留两位小数,对3进行四舍五入
hive (default)> select round(5.689,2);
OK
_c0
5.69
Time taken: 0.073 seconds, Fetched: 1 row(s)
说明:对5.689保留两位小数,对9进行四舍五入
3、floor(double a)
hive (default)> select floor(2.56);
OK
_c0
2
Time taken: 0.968 seconds, Fetched: 1 row(s)
说明:对2.56向下取整,结果为2
hive (default)> select floor(2.36);
OK
_c0
2
Time taken: 0.086 seconds, Fetched: 1 row(s)
说明:对2.36向下取整,结果为2
4、ceil(double a), ceiling(double a)
hive (default)> select ceil(2.3);
OK
_c0
3
Time taken: 0.942 seconds, Fetched: 1 row(s)
hive (default)> select ceiling(2.3);
OK
_c0
3
Time taken: 0.096 seconds, Fetched: 1 row(s)
说明:ceil和ceiling函数的功能是一样的,对2.3上取整,结果为3
hive (default)> select ceil(2.8);
OK
_c0
3
Time taken: 0.07 seconds, Fetched: 1 row(s)
hive (default)> select ceiling(2.8);
OK
_c0
3
说明:对2.8上取整,结果为3
5、rand()
hive (default)> select rand();
OK
_c0
0.45944267022402563
Time taken: 0.104 seconds, Fetched: 1 row(s)
hive (default)> select rand();
OK
_c0
0.03447519492300788
说明:返回0-1之间的随机数
6、rand(seed)
hive (default)> select rand(3);
OK
_c0
0.731057369148862
Time taken: 1.436 seconds, Fetched: 1 row(s)
hive (default)> select rand(3);
OK
_c0
0.731057369148862
Time taken: 0.104 seconds, Fetched: 1 row(s)
hive (default)> select rand(5);
OK
_c0
0.730519863614471
Time taken: 0.09 seconds, Fetched: 1 row(s)
说明:种子数相同,得到的随机数相同。种子数不同,得到不同的随机数