跳到主要内容

flatten:展平嵌套数组

速查结论

flatten(arrayOfArrays) 是 Spark SQL 中用于将嵌套数组(数组的数组)展平为单一数组的函数。

语法

flatten(arrayOfArrays)

参数说明

参数类型说明
arrayOfArraysARRAY<ARRAY<T>>要展平的嵌套数组,即元素本身也是数组的数组

返回值

返回一个类型为 ARRAY<T> 的单一数组,按顺序包含所有子数组中的元素。

示例

> SELECT flatten(array(array(1, 2), array(3, 4)));
[1,2,3,4]

常见报错与避坑指南

  • 只展平一层flatten 仅展平一层嵌套。如果输入是三层或更深嵌套的数组(如 array(array(array(1)))),需要多次调用 flatten 或先做预处理。
  • 空子数组处理:空子数组(如 array())在展平时会被忽略,不会产生额外元素。
  • null 子数组:如果子数组本身为 null,函数的行为取决于 Spark 版本和 ANSI 模式设置。建议在调用前确保子数组非 null。

Since: 2.4.0

📱关注公众号

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

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

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

交流微信二维码

你可能还想看