Bagikan melalui


schema_of_json_aggFungsi agregat

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 13.2 dan yang lebih baru

Mengembalikan skema gabungan dari semua string JSON dalam grup dalam format DDL.

Sintaks

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

Fungsi ini juga dapat dipanggil sebagai fungsi jendela menggunakan OVER klausa.

Argumen

  • jsonStr: Harfiah STRING dengan JSON.
  • options: Literal opsional MAP dengan kunci dan nilai adalah STRING. Untuk detail tentang opsi, lihat fungsi from_json.
  • cond: Ekspresi opsional BOOLEAN yang memfilter baris yang digunakan untuk agregasi.

Mengembalikan

Penahanan STRING definisi array struktur dengan n bidang string di mana nama kolom berasal dari set JSON kunci yang berbeda . nilai bidang menyimpan jenis SQL terformat turunan.

Skema setiap rekaman digabungkan bersama-sama menurut nama bidang. Saat dua bidang dengan nama yang sama memiliki jenis yang berbeda di seluruh rekaman, Azure Databricks menggunakan jenis yang paling tidak umum. Ketika tidak ada jenis seperti itu, jenis berasal sebagai STRING. Misalnya, INT dan DOUBLE menjadi DOUBLE, sementara STRUCT<i INT> dan STRING menjadi STRING.

Skema yang diperoleh dari membaca kolom JSON data sama dengan yang berasal dari yang berikut ini.

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

Untuk mendapatkan skema string tunggal JSON , gunakan fungsi schema_of_json.

Contoh

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