مشاركة عبر


schema_of_json_agg الدالة التجميعية

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime 13.2 والإحدث

إرجاع المخطط المدمج لكافة سلاسل JSON في مجموعة بتنسيق DDL.

بناء الجملة

schema_of_json_agg(jsonStr [, options] ) [FILTER ( WHERE cond ) ]

يمكن أيضا استدعاء هذه الدالة كدالة نافذة باستخدام العبارة OVER .

الوسيطات

  • jsonStrSTRING: قيمة حرفية مع JSON.
  • options: قيمة حرفية اختيارية MAP مع المفاتيح والقيم كونها STRING. للحصول على تفاصيل حول الخيارات، راجع الدالة from_json.
  • cond: تعبير اختياري BOOLEAN يقوم بتصفية الصفوف المستخدمة للتجميع.

المرتجعات

عقد STRING تعريف صفيف من البنيات مع n حقول من السلاسل حيث يتم اشتقاق أسماء الأعمدة من مجموعة مميزة من JSON المفاتيح . تحتوي قيم الحقول على أنواع SQL المنسقة المشتقة.

يتم دمج مخطط كل سجل معا حسب اسم الحقل. عندما يكون لحقلين بنفس الاسم نوع مختلف عبر السجلات، يستخدم Azure Databricks النوع الأقل شيوعا. عندما لا يوجد مثل هذا النوع، يتم اشتقاق النوع ك STRING. على سبيل المثال، INT وتصبح DOUBLEDOUBLE ، بينما STRUCT<i INT> STRING وتصبح STRING.

المخطط الذي تم الحصول عليه من قراءة عمود بيانات JSON هو نفس المخطط المشتق من التالي.

SELECT * FROM json.`/my/data`;

لاشتقاق مخطط سلسلة واحدة JSON ، استخدم الدالة schema_of_json.

الأمثلة

> SELECT schema_of_json_agg(a) FROM VALUES('{"foo": "bar"}') AS data(a);
  STRUCT<foo: STRING>

> SELECT schema_of_json_agg(a) FROM VALUES('[1]') AS data(a);
  ARRAY<BIGINT>

> CREATE TEMPORARY VIEW data(a) AS VALUES
  ('{"foo": "bar",   "wing": {"ding": "dong"}}'),
  ('{"top": "level", "wing": {"stop": "go"}}')

> SELECT schema_of_json_agg(a) FROM data;
  STRUCT<foo: STRING,top: STRING,wing: STRUCT<ding: STRING, stop: STRING>>