flatten:展平嵌套数组
速查结论
flatten(arrayOfArrays) 是 Spark SQL 中用于将嵌套数组(数组的数组)展平为单一数组的函数。
语法
flatten(arrayOfArrays)
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| arrayOfArrays | ARRAY<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真题
