Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime
Devolve um fieldIdentifier valor num STRUCT ou um valor por keyIdentifier num MAP.
Sintaxe
structExpr . fieldIdentifier
mapExpr . keyIdentifier
Argumentos
-
structExpr: UmaSTRUCTexpressão. -
fieldIdentifier: Um identificador para o campo dentrostructExpr. -
mapExpr: UmaMAPexpressão com teclas do tipoSTRING. -
keyIdentifier: Um identificador correspondente a um valor de chave nomapExpr.
Devoluções
Um tipo correspondente ao do fieldIdentifier ou ao tipo dos valores mapExpr.
A resolução dos nomes tem precedência sobre a resolução deste operador.
Ou seja, dada uma série de identificadores separados por pontos, o Azure Databricks resolverá o nome qualificado mais longo possível.
Se o nome resolvido for um MAP ou STRUCT o Azure Databricks interpretará os identificadores restantes usando o operador de sinal de ponto.
Quando usado com um STRUCT, o Azure Databricks verifica a existência do fieldIdentifier no struct quando a instrução é compilada.
Quando usado com um MAP, e não há nenhuma chave que corresponda keyIdentifier, o Azure Databricks retorna null.
Para retornar NULL em vez disso, use a função try_element_at.
Aviso
No Databricks Runtime, se spark.sql.ansi.enabled estiver false, o resultado será NULL se nenhuma chave correspondente for encontrada para mapExpr.
Exemplos
-- Names take precedence over the dot sign operator
> CREATE SCHEMA a;
> CREATE TABLE a.a(a struct<a INT, b STRING>);
> INSERT INTO a.a VALUES (named_struct('a', 5, 'b', 'Spark'));
-- Column `a` in table `a`
> SELECT a.a FROM a.a;
{"a":5,"b":"Spark"}
-- Field `b` in column `a`
> SELECT a.b FROM a.a;
Spark
-- Column `a` in table `a.a`
> SELECT a.a.a FROM a.a;
{"a":5,"b":"Spark"}
-- Field `a` in column `a` in table `a.a`
> SELECT a.a.a.a FROM a.a;
5
-- Resolving a map value:
> SELECT map('three', 3).three;
3
-- Resolving a map value using the [ ] notation:
> SELECT map('three', 3)['three']
3
-- Resolving a map value using back quotes:
> SELECT map('서울시', 'Seoul').`서울시`;
Seoul
-- Cannot resolve a non existing key
> SELECT map('three', 3).four;
NULL