Hive炸裂函数explode的使用
发布日期:2021-09-27 12:34:33 浏览次数:1 分类:技术文章

本文共 1746 字,大约阅读时间需要 5 分钟。

explode的作用

将一行集合类型的数据炸裂为多行数据。

格式

lateral view explode(字段) 表别名 as 列别名

如果字段类型是map:lateral view explode(字段) 表别名 as key别名,value别名

示例

有如下表数据

+-------------------+----------------------+| movie_info.movie  | movie_info.category  |+-------------------+----------------------+| 《疑犯追踪》            | 悬疑,动作,科幻,剧情          || 《Lie to me》       | 悬疑,警匪,动作,心理,剧情       || 《战狼2》             | 战争,动作,灾难             |+-------------------+----------------------+

想要的结果:

+--------------+-----------+|   m.movie    | tbl.type  |+--------------+-----------+| 《疑犯追踪》       | 悬疑        || 《疑犯追踪》       | 动作        || 《疑犯追踪》       | 科幻        || 《疑犯追踪》       | 剧情        || 《Lie to me》  | 悬疑        || 《Lie to me》  | 警匪        || 《Lie to me》  | 动作        || 《Lie to me》  | 心理        || 《Lie to me》  | 剧情        || 《战狼2》        | 战争        || 《战狼2》        | 动作        || 《战狼2》        | 灾难        |+--------------+-----------+
select movie,tbl.typefrom movie_infolateral view explode(split(category,',')) tbl as type;

如果想要如下结果:

+-----------+-----------------------------------+| tbl.type  |                _c1                |+-----------+-----------------------------------+| 剧情        | ["《疑犯追踪》","《Lie to me》"]          || 动作        | ["《疑犯追踪》","《Lie to me》","《战狼2》"]  || 心理        | ["《Lie to me》"]                   || 悬疑        | ["《疑犯追踪》","《Lie to me》"]          || 战争        | ["《战狼2》"]                         || 灾难        | ["《战狼2》"]                         || 科幻        | ["《疑犯追踪》"]                        || 警匪        | ["《Lie to me》"]                   |+-----------+-----------------------------------+

这个是列转行的实现,我们可以按照类型分组,然后把电影名放在集合中。

select tbl.type,collect_list(movie)from movie_infolateral view explode(split(category,',')) tbl as typegroup by tbl.type;

转载地址:https://blog.csdn.net/FlatTiger/article/details/113885626 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Hive 窗口函数的使用
下一篇:Hive常用函数

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月29日 22时33分27秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【大话Java面试】-如何通俗易懂的理解Redis的分布式寻址算法hash slot? 2019-04-26
【大话Java面试】-如何通俗易懂的理解单例模式? 2019-04-26
【大话Java面试】请列出Java中几个常用的设计模式? 2019-04-26
【大话Java面试】-如何通俗易懂的理解Java异常以及Java异常处理? 2019-04-26
【大话Mysql面试】-Mysql的索引为什么要使用B+树,而不是B树,红黑树等之类? 2019-04-26
【大话Mysql面试】-如何通俗易懂的了解Mysql的索引最左前缀匹配原则 2019-04-26
【大话Mysql面试】-MYSQL的两种存储引擎MyISAM与InnoDB的区别是什么? 2019-04-26
【大话Mysql面试】-InnoDB可重复读隔离级别下如何避免幻读?MVCC和next-key是什么 2019-04-26
【大话Mysql面试】-Mysql如何恢复数据?如何进行主从复制?Binlog日志到底是什么? 2019-04-26
理解String.intern()和String类常量池疑难解析例子 2019-04-26
python flask打造前后端分离的口罩检测 2019-04-26
【大话Mysql面试】-MySQL基础知识 2019-04-26
【大话Mysql面试】-MySQL数据类型有哪些 2019-04-26
【大话Mysql面试】-MySQL数据引擎 2019-04-26
【大话Mysql面试】-常见SQL语句书写 2019-04-26
【大话Mysql面试】-SQL语句优化 2019-04-26
【大话Mysql面试】-Mysql事务以及隔离级别 2019-04-26
【大话Mysql面试】-Mysql索引 2019-04-26
【大话Mysql面试】-Mysql锁 2019-04-26
【大话Mysql面试】-Mysql常见面试题目 2019-04-26