当前位置:   article > 正文

lateral view explode (split(column,‘exp’)) 爆炸函数_lateral view explode函数

lateral view explode函数

1,已知条件:

一个表有字段如下:片区编号,分支机构编号,交易终端,客户号,客户下挂关系

2,给出需求:

求出每个分支机构的交易终端  统计粒度下的  所有下挂关系类型的  客户数量???

下挂关系类型有:

津贴1,津贴2,协助关系,经济关系,客服关系,机构序列开发,其他

技术架构:hive sql

3,业务梳理:

字段维度关系如下:片区编号>分支机构编号>交易终端>客户号= 客户下挂关系

部分数据展示如下:

在这里就需要用到爆炸函数了,但有那么亿丢丢难度,先给大家逐步拆解。

4,业务步骤:

4.1,split函数:

会把一个字符串的数据类型变成一个array数组(重点知识)!

代码如下:

结果展示:

2,Explode()函数:

要统计每种下挂关系的数量,肯定要先把关系字段炸开,然后case when 求和 sum。

Explode()函数是Hive的内置函数,也称为爆炸函数,此函数将array数组或map映射作为输入按行输出array或map中的元素,可搭配 lateral view(侧视图)使用。

代码如下:

结果展示:

ok 这个时候我们发现通过爆炸函数得到,侧视图表tmp,字段emp_type_name,

发现数组中的每一个元素都炸开成为了一条记录,实现列转行。

3,  分组汇总:

求出每个分支机构的交易终端  统计粒度下的  所有下挂关系类型的  客户数量???

咦,这个时候是不是有点思路了!!!

只要把上面炸开的数据统计求和,就可以得汇总数据!!

但又因为要求得各种下挂关系数量??这个加个行列转换(行转列)

代码如下:

结果如下:

因为这个项目刚开始,实际的业务推广也没多久,因此数据就少。

4.4结语:

本章节主要sql函数技能是利用爆炸函数把array数组炸开,分组汇总求和。

站在sql技能:(split, 爆炸函数,侧视图,聚合函数,行列转换)的制高点,轻松实现业务指标。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/725848
推荐阅读
相关标签
  

闽ICP备14008679号