arrays_overlap:判断数组重叠
速查结论
arrays_overlap(a1, a2) 是 Spark SQL 中用于判断两个数组是否存在公共非空元素的函数。
语法
arrays_overlap(a1, a2)
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| a1 | ARRAY | 第一个输入数组 |
| a2 | ARRAY | 第二个输入数组 |
返回值
- 如果 a1 包含至少一个在 a2 中也存在的非空元素,则返回 true。
- 如果两个数组没有共同元素,且它们都不为空,且其中至少有一个包含 null 元素,则返回 null。
- 其他情况返回 false。
示例
> SELECT arrays_overlap(array(1, 2, 3), array(3, 4, 5));
true
常见报错与避坑指南
- null 元素导致返回 null:如果两个数组没有公共非空元素,但其中任一数组包含 null,函数将返回 null 而非 false。这是因为 null 表示"未知",无法确定 null 是否等于对方数组中的某个元素。建议在使用前通过
array_compact或过滤移除 null 元素,或使用COALESCE(arrays_overlap(a1, a2), false)将 null 转为 false。 - 空数组场景:如果任一数组为空数组(非 null),函数返回 false。
Since: 2.4.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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