hive 学习笔记

lateral view explode组合用法

可以参考这篇博客,写的很清楚:https://blog.csdn.net/jiayi_yao/article/details/124480737
explode 解析array和map的结果是不一样的
解析array是一列变多行
解析map是分别把key和value变成2列

explode(),总会出现lateral view,它们各自的作用是什么?

第一部分对explode()函数做了简单的讲解,知道它作用的数据格式为array和map ,也知道了如何单独使用explode,可能脑袋还是有点懵,下面将结合案例一起学习。
UDTF函数(如:explode)只能只允许对拆分字段进行访问,即select时只能出现explode作用的字段,不能在选择表中其它的字段,否则会报错。
但是实际中需求中经常要拆某个字段,然后一起与别的字段一起取。这时就要使用lateral view。
lateral view为侧视图,其实就是用来和像类似explode这种UDTF函数联用的,lateral view会将UDTF生成的结果放到一个虚拟表中,然后这个虚拟表会和输入行进行join来达到连接UDTF外的select字段的目的。
不加lateral view的UDTF函数只能提取单个字段拆分,并不能塞回原来数据表中。加上lateral view就可以将拆分的单个字段数据与原始表数据关联上。在使用lateral view的时候需要指定视图别名和生成的新列别名。参考

posted @ 2022-10-20 16:24  高文星星  阅读(104)  评论(0编辑  收藏  举报