HiveSql实际应用——(2)Lateral view_转行为列
数据分析狮
写在前面:
HiveSql实际应用系列,是在实际HiveSql运用场景中,遇到一些相对少见的功能时查找相应解决方案时学习到的。因为基本的SQL语句,可以任意找一本数据库原理的书,做书后的习题即可。因此开设“HiveSql实际应用系列”作为基本语句外的补充,同时给出一些应用场景,让大家对日常分析有个直观的感受。
业务需求:
搜索展现表A,表示在搜索一个关键词后,展现出来的商品的列表,一个用逗号分隔的list。但是现在需要解析出list中所有item_id进行分析,此时需要用到lateral view。
举例如下:
A(session_id, se_keyword string, item_list string)
101,功夫熊猫,(1001,1002,1003)
102,樱桃小丸子,(2001,2002,2003)
HiveSQL:
Select session_id,se_keyword,a item_id
from
(Select session_id,se_keyword,item_list
From A
Lateral view bi_udf:bi_split_value(item_list) itm as a) B
结果:
101,功夫熊猫,1001
101,功夫熊猫,1002
101,功夫熊猫,1003
102,樱桃小丸子,2001
102,樱桃小丸子,2002
102,樱桃小丸子,2003
学习要点:
数据分析前,需要充分了解数据表格的结构:包括分区情况、增量表还是总量表、字段类型、字段结构等。才能提取到对的数据。
发布于 2016-08-03