跳到主要内容

explode_outer:行展开(保留空值)

速查结论

explode_outer(expr) 是 Spark SQL 中用于将数组或映射的元素拆分成多行,且保留 NULL 或空数组/映射对应的行的函数。

语法

explode_outer(expr)

参数说明

参数类型说明
exprARRAY<T>MAP<K,V>要展开的数组或映射。对于数组,默认列名为 col;对于映射,默认列名为 keyvalue

Examples

> SELECT explode_outer(array(10, 20));
10
20
> SELECT explode_outer(collection => array(10, 20));
10
20
> SELECT * FROM explode_outer(collection => array(10, 20));
10
20

常见报错与避坑指南

  • explode 与 explode_outer 的区别explode 在遇到 NULL 或空数组/映射时会丢弃整行,而 explode_outer 会保留该行并生成一行 NULL 值。当需要保留所有行时,应使用 explode_outer
  • LATERAL VIEW 配合使用explode_outer 通常与 LATERAL VIEW 搭配使用,将单行中的数组/映射字段展开为多行,同时保留原始行中的其他列。

Since: 1.0.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

备注「数据仓库技术」加入社群,每日一道大厂SQL真题

交流微信二维码

你可能还想看