持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情
上文介绍到hive的数学函数,来回顾一下分别有round()和bround()这两种获取近似值的函数方法,功能各不相同,本文继续介绍数学函数,废话不多说直接上正文吧。
floor()函数
常见使用方法: floor(DOUBLE a)
具体功能描述: 如上的使用方法中可知道传入的参数是double类型的,这是一个向下取整数的方法,如果实在数轴上做介绍,中间为0,左边是小于0的数,右边是大于0的数,按照向下取整数的规则,即获取这个数轴上最接近给定的值的左边的第一个值,并且一定是整数。
select floor(9.1)
->10
select。floor(-6.4)
->-7
Rand()随机函数
常见使用方法: rand(int seed)
具体功能描述: 在hive中也是有返回随机数的,其中传入的整型参数是随机因子,默认是返回0-1范围之间的一个随机数,如果传入一个随机因子,则获得到的会是一个随机数序列不会改变。
select rand()
>> 0.98362738823276
select rand(null)
>> 0.635562772635899
还有一些可实现数学计算的hive函数,
比如进行幂次方计算的函数exp(DOUBLE n), exp(DECIMAL n),这里传入的参数可以是小数。
具体功能描述: 返回e的n次幂,n的类型可以是double,该函数返回的结果类型也是double类型的。
然后还有计算底数的函数方法ln(DOUBLE n), ln(DECIMAL n),
具体功能描述: 这个函数返回的结果类型也是double的,它是由自然数为底数的对数,这里的n也是可以为小数。
然后另外的获取对数的方法还有log10(DOUBLE n), log10(DECIMAL n),这些都和数学计算法中的获取幂等次方或者获取对数的写法差不太大。
具体功能描述: 输入double数据类型的参数,获取以10为底数的对数,这里的n也是可以为小数。