schema_of_json_agg toplama işlevi

Şunun için geçerlidir:evet işaretli Databricks SQL evet işaretli Databricks Runtime 13.2 ve üzeri

DDL biçiminde bir gruptaki tüm JSON dizelerinin birleşik şemasını döndürür.

Sözdizimi

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

Bu işlev, pencere işlevi olarak, OVER yan tümcesi kullanılarak da çağrılabilir.

Tartışmalar

  • jsonStr: STRING ifadesi JSON ile.
  • options: anahtarların ve değerlerin MAPolduğu isteğe bağlı bir STRING literalidir. Seçenekler hakkında ayrıntılı bilgi için bkz from_json . işlev.
  • cond: Toplama için kullanılan satırları filtreleyerek isteğe bağlı BOOLEAN bir ifade.

İadeler

String türünde STRING alanları bulunan ve sütun adları ayrı n anahtar kümesinden türetilen yapı dizisinin tanımını içeren JSON. Alan değerleri türetilmiş biçimlendirilmiş SQL türlerini barındırır.

Her kaydın şeması alan adına göre birleştirilir. Kayıtlarda aynı ada sahip iki alanın türü farklı olduğunda, Azure Databricks en az ortak türü kullanır. Böyle bir tür olmadığında, tür STRING olarak türetilir. Örneğin, INT ve DOUBLE, DOUBLE olurken STRUCT<i INT> ve STRING, STRING olur.

JSON veri sütununun okunmasından elde edilen şema, aşağıdakilerden türetilen şemayla aynıdır.

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

Tek JSON bir dizenin şemasını türetmek için işlevini kullanınschema_of_json.

Örnekler

> 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>>