hive函数

202 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情

在之前的文章中也是有介绍过一些聚合函数的,都是在日常大数据开发过程中最常使用到的,比如count(col)、sum(col),avg(col)等等。

在使用聚合函数的时候一定要对数据做去重处理,往往都会直接使用distinct对字段进行去重,但这种方式并不好,影响性能不说,还可能去重去的不干净,最好是使用group by的方式。

常用的一些聚合函数都介绍过了,下面介绍一些冷门的聚合函数,不过也都是作为hive的大数据开发都必须掌握的。

min()函数

常见使用方法: min(col)

具体功能描述: 该函数的功能就是可以指定某一列的数据求最小值,非常简单,常用作数据对比的时候,返回的结果类型是double,直接传入列名称即可,常结合这条件函数一起使用,判断最小值是否比某某值更小这样的条件查询。

max()函数

和上一个min()相反的是,这个函数求取某一列的最大值,返回的结果类型也是double。

corr()函数

常见使用方法: corr(col1,col2)

具体功能描述: 这个函数的作用是为了返回两列之间的相关系数,数值通过一定的关系比获得关系系数,具有null的那一对数值的比较是被忽略的,直接返回null结果。其他有值的每一对元素进行比较并返回double类型的结果集。

select id,corr(cola, colb) from t group by id
-- 
A0.1111111
null

最后要介绍的是生成表函数,json_tuple()函数

常见使用方法: json_tuple(jsonStr, k1, k2, ...)

具体功能描述: 这个函数的功能作用是把一个json字符串中的key值作为一个元素返回,他可以一次性获取多个键值数据。

下面还有解析url的函数 parse_url_tuple(url, p1, p2, ...)

具体功能描述: 该函数可以获取到url中的多个部分的信息,输入参数URL字符串信息,通过指定参数p1,p2来获取需要返回的部分,这里的p参数包含PATH,HOST,QUERY ,AUTHORITY , REF, PROTOCOL等等。