Dela via


Funktionen element_at

Gäller för: markerad ja Databricks SQL markerad ja Databricks Runtime

Returnerar elementet i ett arrayExprindex.

Returnerar värdet mapExpr för för key.

Syntax

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

Argument

  • arrayExpr: Ett ARRAY-uttryck.
  • index: Ett INTEGER-uttryck.
  • mapExpr: Ett MAP-uttryck.
  • key: Ett uttryck som matchar typen av nycklar för mapExpr

Returer

Om det första argumentet är en MATRIS:

  • Resultatet är av typen av elementen expri .
  • abs(index) måste vara mellan 1 och matrisens längd.
  • Om index är negativt kommer funktionen åt element från den sista till den första.
  • Funktionen genererar INVALID_ARRAY_INDEX_IN_ELEMENT_AT fel om abs(index) överskrider matrisens längd.

Om det första argumentet är en MAP och key inte kan matchas med en post i mapExpr funktionen returneras null.

Kommentar

I Databricks Runtime, om spark.sql.ansi.failOnElementNotExists är false funktionen returnerar NULL i stället för att skapa fel.

Exempel

> 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