Hive lateral view 和 explode的区别和使用

本文介绍了Hive中的explode函数,用于将array或map类型数据拆分成多行,并详细解析了Lateral View的用法,包括其与UDTF的结合,以及在不同格式中的应用,帮助理解如何在Hive中处理复杂数据结构。
摘要由CSDN通过智能技术生成
1、explode

将一行数据转换成列数据,可以用于array和map类型的数据。
就是将hive一行中复杂的array或者map结构拆分成多行。

  • 用于array的语法如下:

select explode(arraycol) as newcol from tablename;

explode():函数中的参数传入的是arrary数据类型的列名。
newcol:是给转换成的列命名一个新的名字,用于代表转换之后的列名。
tablename:原表名。

  • 用于map的语法如下:

select explode(mapcol) as (keyname,valuename) from tablename;

explode():函数中的参数传入的是map数据类型的列名。
由于map是kay-value结构的,所以它在转换的时候会转换成两列,一列是kay转换而成的,一列是value转换而成的。
keyname:表示key转换成的列名称,用于代表key转换之后的列名。
valuename:表示value转换成的列名称,用于代表value转换之后的列名称。
注意:这两个值需要在as之后用括号括起来然后以逗号分隔。

2、Lateral View

lateral view是Hive中提供给UDTF的结合,它可以解决UDTF不能添加额外的select列的问题。
latera

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值