إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime
fieldIdentifier إرجاع قيمة في STRUCT أو قيمة في keyIdentifier .MAP
بناء الجملة
structExpr . fieldIdentifier
mapExpr . keyIdentifier
الوسيطات
structExpr: تعبيرSTRUCT.fieldIdentifier: معرف للحقل داخلstructExpr.mapExprMAP: تعبير بمفاتيح من النوعSTRING.keyIdentifier: معرف يطابق قيمة مفتاح فيmapExpr.
المرتجعات
نوع يطابق fieldIdentifier نوع القيم أو نوعها mapExpr .
يكون لتحليل الأسماء الأسبقية على دقة عامل التشغيل هذا.
أي، بالنظر إلى سلسلة من المعرفات مفصولة بنقاط، سيقوم Azure Databricks بحل أطول اسم مؤهل ممكن.
إذا كان الاسم الذي تم حله هو MAP أو STRUCT سيقوم Azure Databricks بتفسير المعرفات المتبقية باستخدام عامل تشغيل علامة النقطة.
عند استخدامها مع STRUCT، يتحقق Azure Databricks من fieldIdentifier وجود في البنية عند تحويل العبارة برمجيا.
عند استخدامها مع MAP، ولا يوجد مفتاح يطابق keyIdentifier، ترجع Azure Databricks قيمة خالية.
NULL للعودة بدلا من ذلك، استخدم الدالة try_element_at.
تحذير
في Databricks Runtime، إذا كان spark.sql.ansi.enabled هو false، فإن النتيجة هي NULL إذا لم يتم العثور على مفتاح مطابق ل mapExpr.
الأمثلة
-- 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