跳到主要内容

get:获取数组元素

速查结论

get(array, index) 是 Spark SQL 中用于按索引获取数组中指定位置的元素的函数。

语法

get(array, index)

参数说明

参数类型说明
arrayARRAY要访问的输入数组
indexINT要获取的元素索引,从 0 开始计数

返回值

返回数组中指定索引处的元素。如果索引超出数组边界(包括负数索引),函数返回 NULL。

示例

> SELECT get(array(1, 2, 3), 0);
1
> SELECT get(array(1, 2, 3), 3);
NULL
> SELECT get(array(1, 2, 3), -1);
NULL

常见报错与避坑指南

  • 负数索引不适用:与 Python 等语言不同,get 不支持负数索引(如 -1 获取最后一个元素)。负数索引会导致返回 NULL。
  • 索引从 0 开始:数组索引是 0-based,即第一个元素的索引为 0,第 N 个元素索引为 N-1。
  • 越界访问不报错:当索引超出数组边界时,函数静默返回 NULL 而非抛出异常。如果需要在越界时得到错误提示,请使用 ANSI SQL 模式或自行做边界检查。

Since: 3.4.0

📱关注公众号

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

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

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

交流微信二维码

你可能还想看