schema_of_json_aggFungsi agregat

Berlaku untuk:ditandai sebagai ya Databricks SQL ditandai sebagai ya Databricks Runtime 13.2 ke atas

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 dengan menggunakan klausa OVER.

Argumen

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

Pengembalian

Sebuah STRING yang menyimpan definisi array dari struktur dengan n bidang-bidang string di mana nama kolom terdiri dari set JSON kunci yang unik. Nilai bidang menyimpan jenis SQL yang diformat turunan.

Skema setiap rekaman digabungkan 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 diturunkan 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 schema_of_json fungsi.

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