当前位置: 首页 > news >正文

LATERAL VIEW POSEXPLODE ~ Hive/Spark SQL

背景

LATERAL VIEW:侧视图,用来将数组 / Map 等集合字段炸开多行,实现一对多关联
posexplode():爆炸函数,和 explode 类似,但同时返回下标位置 + 元素值
LATERAL VIEW posexplode(数组字段) AS pos, val
作用:把数组拆成多行,额外带出每个元素在数组中的索引下标

explode vs posexplode 核心区别

explode(arr)

只输出数组里的元素,没有下标

explode(array('a','b','c'))ASval

结果:

val a b c

posexplode(arr)

输出两列:pos(下标,从 0 开始)、val(元素)

posexplode(array('a','b','c'))ASpos,val

结果:

pos val 0 a 1 b 2 c

LATERAL VIEW 作用

如果直接 select posexplode(col),只能单独查爆炸函数;
当需要同时查询原表普通字段 + 炸开后的多行数据,必须搭配 LATERAL VIEW

标准语法模板

SELECT原表普通字段,pos,-- 数组下标val-- 数组元素FROM表名 LATERALVIEWposexplode(数组字段)tmpASpos,val;

tmp:侧视图别名(可省略,建议写上)
pos:自定义下标列名
val:自定义元素列名

实战示例

id name hobby_list 1 小明 ["篮球","游戏"] 2 小红 ["看书","画画","跑步"]
SELECTid,name,pos,hobbyFROMuser_info LATERALVIEWposexplode(hobby_list)tASpos,hobby;

输出结果

id name pos hobby 1 小明 0 篮球 1 小明 1 游戏 2 小红 0 看书 2 小红 1 画画 2 小红 2 跑步

常见使用场景

需要区分数组元素顺序
比如日志数组按时间有序,pos 代表第几条行为;
取数组第 N 个元素做过滤

-- 只保留数组第一个元素(pos=0)WHEREpos=0

有序数组转宽表
根据 pos 做行转列 collect_list + case when pos=x;
有序标签打分:下标越小权重越高,pos 参与计算。

关键特性 & 坑点

下标从 0 开始,不是 1
数组为 null / [] 空数组:整条行会消失(不生成任何行)
想保留空行用

LATERALVIEWOUTERposexplode(...);

支持嵌套:多个 LATERAL VIEW 连续写,拆解多层数组;
Map 类型配套:posexplode(map) 会返回 pos, key, value 三列

OUTER 关键字补充(保留空数据)

不加 OUTER:数组为空则主表这条数据直接丢失
加 OUTER:数组为空时 pos=null, val=null,主表数据保留

LATERALVIEWOUTERposexplode(hobby_list)tASpos,hobby
http://www.jsqmd.com/news/1070460/

相关文章:

  • 抖音无水印视频下载终极解决方案:三步获取纯净高清内容
  • 096-基于51单片机红外线人数统计系统【Proteus仿真+Keil程序+报告+原理图】
  • Linux 内核高速接口协议全方位深度解析
  • Windows上iPhone USB网络共享终极解决方案:快速安装苹果驱动指南
  • 2026企业薪资架构演进:利用AI Agent攻克多地社保规则差异化的实战指南
  • MoE 混合专家模型算力消耗分析,超大模型租赁集群部署难点
  • Navicat永久免费使用终极方案:三步解除Mac版数据库管理工具试用限制
  • HMCL启动器:一站式解决Minecraft玩家的所有管理难题
  • 计算机毕业设计之空气质量指数数据采集可视化系统
  • 下载量超2.8万次的办公效率软件,错过就没有了!
  • 如何高效实现MATLAB到Python代码迁移:智能转换工具实战指南
  • 告别复杂统计软件!Paperxie 数据分析模块,一键完成论文全流程数据论证
  • 如何快速掌握Xournal++:从PDF批注到专业手写笔记的终极完整指南
  • 破茧成蝶:Python爬虫攻克B站番剧索引页gRPC协议全记录
  • 即时配送对账太难?实测AI智能体,全平台结算数据每日自动汇总避坑指南
  • 2026年,广州这个知名陶瓷雪茄烟托品牌究竟有何独特魅力?
  • AI 边缘推理的功耗困局:从模型裁剪到硬件休眠的全链路节能方案
  • 企业微信主体变更公证书怎么办理?企业微信主体变更公证需要多久?
  • 物流企业采购自动化工具选型指南:2026年如何精准判断产品能否适配老旧系统?
  • 2026年AI大模型工程化落地:从模型选型到企业级应用的技术路径
  • 3分钟快速激活Beyond Compare 5:免费密钥生成工具完整指南
  • 衡水采耳spa按摩养生中心挑选指南:5家值得了解
  • Onekey Steam游戏解锁器:一键获取完整游戏体验的终极指南
  • 零信任安全:基于 Go 原生 mTLS 与自建 CA 的动态证书管理实践
  • 障眼法:人类认知的美丽欺瞒
  • 抖音下载器技术深度解析:分布式架构与反制突破的工程实现
  • 终极流媒体下载器:N_m3u8DL-RE让你轻松保存任何在线视频
  • 【AI成熟度跃迁指南】:2026奇点大会官方认证的3阶6维评估模型首次解密(附可落地的成熟度自测矩阵)
  • 探秘光学级CVD单晶金刚石:高透光与高硬度的完美平衡
  • 【共创季稿事节】动图魔方技术拆解 03:HarmonyOS 6.1 本地优先 GIF 工具:素材选择、文件 URI、相册保存与系统分享