Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime
Mengembalikan nilai fieldIdentifier dalam STRUCT atau nilai berdasarkan keyIdentifier dalam MAP.
Sintaks
structExpr . fieldIdentifier
mapExpr . keyIdentifier
Argumen
-
structExpr: SebuahSTRUCTekspresi. -
fieldIdentifier: Sebuah pengenal untuk bidang dalamstructExpr. -
mapExpr: EkspresiMAPdengan kunci jenisSTRING. -
keyIdentifier: Pengidentifikasi yang cocok dengan nilai kunci dimapExpr.
Pengembalian
Jenis yang cocok dengan jenis fieldIdentifier atau jenis nilai mapExpr.
Resolusi nama lebih diutamakan daripada resolusi operator ini.
Artinya, mengingat serangkaian pengidentifikasi yang dipisahkan oleh titik-titik, Azure Databricks akan menyelesaikan nama terlama yang memenuhi syarat.
Jika nama yang diselesaikan adalah MAP atau STRUCT Azure Databricks akan menginterpretasikan pengidentifikasi yang tersisa menggunakan operator tanda titik.
Saat digunakan dengan STRUCT, Azure Databricks memverifikasi keberadaan fieldIdentifier dalam struktur saat pernyataan dikompilasi.
Saat digunakan dengan MAP, dan tidak ada kunci yang cocok keyIdentifier, Azure Databricks mengembalikan null.
Untuk mengembalikan NULL , gunakan fungsi try_element_at.
Peringatan
Dalam Databricks Runtime, jika spark.sql.ansi.enabled adalah false, hasilnya adalah NULL apabila tidak ditemukan kunci yang sesuai untuk mapExpr.
Contoh
-- 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