get:获取数组元素
速查结论
get(array, index) 是 Spark SQL 中用于按索引获取数组中指定位置的元素的函数。
语法
get(array, index)
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| array | ARRAY | 要访问的输入数组 |
| index | INT | 要获取的元素索引,从 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真题
