HiveSql(2)Lateral view_转行为列

本文介绍了如何使用Hive的Lateral View功能将一个字段中的逗号分隔值拆分为多行,以进行进一步的数据分析。以搜索展现表A为例,解析session_id和se_keyword下的item_list,展示每个session_id和se_keyword对应的所有item_id。

Lateral view_转行为列

业务需求:

搜索展现表A,表示在搜索一个关键词后,展现出来的商品的列表,一个用逗号分隔的list。但是现在需要解析出list中所有item_id进行分析,此时需要用到lateral view

举例如下:

A(session_id, se_keyword string, item_list string)

101,功夫熊猫,(1001,1002,1003)

102,樱桃小丸子,(2001,2002,2003)

 

SQL:

Select session_id,se_keyword,a item_id

from

(Select session_id,se_keyword,item_list

From A

在Hive SQL中,使用Lateral View可以将一个表的一拆分成多行,以便进行更复杂的查询和分析。在Lateral View中,最常用的函数是posexplode和explode。 在引用中的例子中,使用了Lateral View posexplode函数将id按逗号分隔拆分成多行,同时生成了一个新的single_id_index和single_id。 在引用中的例子中,使用了两次Lateral View posexplode函数和where子句进行筛选。首先,将id按逗号分隔拆分成多行,并生成新的single_id_index和single_id。然后,将tim按逗号分隔拆分成多行,并生成新的single_yim_index和single_tim。最后,使用where条件将single_id_index和single_yim_index相等的行筛选出来。 在引用中的例子中,使用了Lateral View explode函数将ordr_set表中的ordr_id拆分成多行,并将每一行与相应的user_id和user_layer进行拆分。tmp1是虚拟表的表名,ordr_id是拆分后的字段。 因此,Lateral View在Hive SQL中是一种非常有用的函数,可以帮助我们处理包含多值的,并进行更复杂的查询和分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Hive SQL中的 lateral view 与 explode(转行)以及行转](https://blog.youkuaiyun.com/qq_42374697/article/details/115273726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [Hive SQL中的lateral view explode](https://blog.youkuaiyun.com/weixin_38753213/article/details/115364880)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值