HiveSql实际应用——(2)Lateral view_转行为列

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

文章被以下专栏收录