持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情
上文的hive数学函数还没讲完的内容,咱们继续来介绍吧。
还是说一些常见好用的数学计算函数吧。
求取绝对值的函数,这个绝对是在hive中非常好用的,不管是在数据聚合还是计算中,都可以应用到绝对值这个函数,比如现在要计算退款金额的总数,但是退款金额存入库里的时候是负数,这时候就可以直接相加以后获得绝对值结果,或者将每个元素都先取到绝对值后,再进行相加求和。
常见使用方法: abs(xxx)
具体功能描述: 该方法就是计算输入参数的绝对值,输入的参数是double类型,返回结果的数据类型也是double的。
select abs(-3.5);
>> 3.5
select abs(10.5);
>> 10.5
还有一个常见的函数是取模。即pmod(),在之前的文章简单介绍过,这里也是用到了绝对数的概念。
常见使用方法: pmod(INT m, INT n), pmod(DOUBLE m DOUBLE n)
具体功能描述: 这里的取模结果就是m除以n的余数取绝对值,返回的结果类型为int或者是double,根据输入的参数的类型而定。
老是介绍数学函数,可能略显沉闷,所以穿插着介绍一下hive函数中的连接。
left join的注意事项: 当使用left join做简单的连表查询时,必须将右边表的分区字段写到on条件里面,否则就会都不到分区数据。 另外如果当前表是一张日更新表,而关联到的表是一张小时更新表的话,需要将分区字段进行调整,具体可调整为yyyyMMdd000000,这样可以获取到小时分区表的数据信息。 其次left join是关联一张较复杂数据处理的表,就需要将分区信息写到括号里面,并且on的条件进行合并组合,一定要对数据进行去重复过滤。