跳到主要内容

arrays_overlap:判断数组重叠

速查结论

arrays_overlap(a1, a2) 是 Spark SQL 中用于判断两个数组是否存在公共非空元素的函数。

语法

arrays_overlap(a1, a2)

参数说明

参数类型说明
a1ARRAY第一个输入数组
a2ARRAY第二个输入数组

返回值

  • 如果 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真题

交流微信二维码

你可能还想看