跳到主要内容

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

微信公众号二维码关注公众号
交流微信二维码加群交流
赞赏二维码赞赏

你可能还想看