lateral view
在 Hive 中,使用 `LATERAL VIEW` 可以实现行转列的操作,通常与 `explode` 函数结合使用。下面是一个示例,展示如何通过 `LATERAL VIEW` 将行转为列。 ### 示例场景 假设我们有一个名为 `movies` 的表,包含影视作品及其类型,类型是以逗号分隔的字符串。 ### 1. 创建基础表 首先,我们创建一个名为 `movies` 的基础表: ```sql CREATE TABLE movies ( title STRING, genres STRING ); ``` ### 2. 插入数据 接下来,向 `movies` 表中插入一些示例数据: ```sql INSERT INTO TABLE movies VALUES ('《疑犯追踪》', '悬疑, 动作, 科幻, 剧情'), ('《Lie to Me》', '悬疑, 警匪, 动作, 心理, 剧情'), ('《战狼2》', '战争, 动作, 灾难'); ``` ### 3. 使用 `LATERAL VIEW` 进行行转列 现在,我们可以使用 `LATERAL VIEW` 和 `explode` 函数将 `genres` 列中的类型行转为列。以下是一个查询示例: ```sql SELECT title, genre FROM movies LATERAL VIEW explode(split(genres, ', ')) exploded_genres AS genre; ``` ### 4. 查询结果 执行上述查询后,结果将如下所示: | title | genre | |---------------|---------| | 《疑犯追踪》 | 悬疑 | | 《疑犯追踪》 | 动作 | | 《疑犯追踪》 | 科幻 | | 《疑犯追踪》 | 剧情 | | 《Lie to Me》 | 悬疑 | | 《Lie to Me》 | 警匪 | | 《Lie to Me》 | 动作 | | 《Lie to Me》 | 心理 | | 《Lie to Me》 | 剧情 | | 《战狼2》 | 战争 | | 《战狼2》 | 动作 | | 《战狼2》 | 灾难 | ### 总结 - 使用 `LATERAL VIEW` 和 `explode` 函数可以将以逗号分隔的字符串转为多行。 - 通过 `split` 函数将字符串分割为数组,然后使用 `explode` 将数组中的每个元素转为单独的行。 如果你有其他问题或需要更多示例,请告诉我!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-09-12 HIVE 与impala
2018-09-12 MongoDB