Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: Databricks SQL
Databricks Runtime
Retourneert een fieldIdentifier
waarde in een STRUCT
of een waarde door keyIdentifier
in een MAP
.
Syntaxis
structExpr . fieldIdentifier
mapExpr . keyIdentifier
Argumenten
-
structExpr
: EenSTRUCT
expressie. -
fieldIdentifier
: Een id voor het veld binnenstructExpr
. -
mapExpr
: EenMAP
expressie met sleutels van het typeSTRING
. -
keyIdentifier
: Een id die overeenkomt met een sleutelwaarde in demapExpr
.
Retouren
Een type dat overeenkomt met dat van het fieldIdentifier
of het type van de mapExpr
waarden.
De resolutie van namen heeft voorrang op de resolutie van deze operator.
Gegeven een reeks identificatoren, gescheiden door punten, zal Azure Databricks de langst mogelijke gekwalificeerde naam oplossen.
Als de opgeloste naam een MAP
of STRUCT
Azure Databricks is, worden de resterende id's geïnterpreteerd met behulp van de operator voor punttekens.
Wanneer een STRUCT
met Azure Databricks wordt gebruikt, verifieert het systeem of de fieldIdentifier
aanwezig is in de struct wanneer deze wordt gecompileerd.
Wanneer azure Databricks wordt gebruikt met een MAP
, en er geen sleutel is die overeenkomt keyIdentifier
, retourneert Azure Databricks null.
Gebruik in plaats daarvan de try_element_at-functie om NULL
te retourneren.
Waarschuwing
Als in Databricks Runtime spark.sql.ansi.enabled is false
, is het resultaat NULL
als er geen overeenkomende sleutel wordt gevonden voor de mapExpr
.
Voorbeelden
-- 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