Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Databricks SQL
Databricks Runtime
fieldIdentifier
değerini bir STRUCT
içinde veya keyIdentifier
ile bir MAP
içinde döndürür.
Söz dizimi
structExpr . fieldIdentifier
mapExpr . keyIdentifier
Argümanlar
-
structExpr
: BirSTRUCT
ifade. -
fieldIdentifier
: içindeki alan içinstructExpr
. -
mapExpr
:MAP
,STRING
türünde anahtarlara sahip bir ifade. -
keyIdentifier
: tanımlayıcısı,mapExpr
ile eşleşen bir anahtar değeri.
İadeler
fieldIdentifier
veya mapExpr
değerlerinin türüyle eşleşen bir tür.
Adların çözümlenmesi, bu işlecin çözümlenmesinden önceliklidir.
Yani, noktalarla ayrılmış bir dizi tanımlayıcı verildiğinde, Azure Databricks en uzun olası özellikli adı belirler.
Çözümlenen ad bir MAP
ise veya STRUCT
Azure Databricks kalan tanımlayıcıları nokta işareti işlecini kullanarak yorumlar.
Azure Databricks, STRUCT
ile kullanıldığında, deyim derlenirken yapıda fieldIdentifier
öğesinin varlığını doğrular.
MAP
ile kullanıldığında ve keyIdentifier
ile eşleşen bir anahtar olmadığında Azure Databricks null döndürür.
Bunun yerine NULL
'yi döndürmek için try_element_at işlevini kullanın.
Uyarı
Databricks Runtime'da, spark.sql.ansi.enabled ise ve mapExpr
için eşleşen bir anahtar bulunamazsa, sonuç NULL
olur.
Örnekler
-- 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