element_at Функции

Область применения:проверка помечено да Databricks SQL проверка помечено да Databricks Runtime

Возвращает элемент объекта в arrayExprindex.

Возвращает значение mapExpr для key.

Синтаксис

element_at(arrayExpr, index)
element_at(mapExpr, key)

Аргументы

  • arrayExpr: выражение ARRAY.
  • index: целочисленное выражение.
  • mapExpr: выражение MAP.
  • key: выражение, соответствующее типу ключей . mapExpr

Возвращает

Если первым аргументом является МАССИВ:

  • Результат имеет тип элементов expr.
  • Значение abs(index) должно находиться в диапазоне от 1 до длины массива.
  • Если index значение отрицательное, функция обращается к элементам от последнего к первому.
  • Функция вызывает ошибку INVALID_ARRAY_INDEX_IN_ELEMENT_AT , если abs(index) превышает длину массива.

Если первый аргумент является MAP и key не может быть сопоставлен с записью в mapExpr функции возвращает значение NULL.

Примечание

В Databricks Runtime функция возвращает NULL , а spark.sql.ansi.failOnElementNotExistsfalse не вызывает ошибки.

Примеры

> SELECT element_at(array(1, 2, 3), 2);
 2

> SELECT try_element_at(array(1, 2, 3), 5);
 NULL

> SELECT element_at(array(1, 2, 3), 5);
 Error: INVALID_ARRAY_INDEX_IN_ELEMENT_AT

> SELECT element_at(map(1, 'a', 2, 'b'), 2);
 b

> SELECT element_at(map(1, 'a', 2, 'b'), 3);
 NULL

> SELECT try_element_at(map(1, 'a', 2, 'b'), 3);
NULL