Share via


schema_of_json_agg funzione di aggregazione

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 13.2 e versioni successive

Restituisce lo schema combinato di tutte le stringhe JSON in un gruppo in formato DDL.

Sintassi

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

Questa funzione può anche essere richiamata come funzione window usando la OVER clausola .

Argomenti

  • jsonStr: valore STRING letterale con JSON.
  • options: valore letterale facoltativo MAP con chiavi e valori .STRING Per informazioni dettagliate sulle opzioni, vedere from_json funzione.
  • cond: espressione facoltativa BOOLEAN che filtra le righe usate per l'aggregazione.

Valori restituiti

Oggetto STRING contenente una definizione di una matrice di struct con n campi di stringhe in cui i nomi delle colonne derivano dal set distinto di JSON chiavi . I valori dei campi contengono i tipi SQL formattati derivati.

Lo schema di ogni record viene unito in base al nome del campo. Quando due campi con lo stesso nome hanno un tipo diverso tra record, Azure Databricks usa il tipo meno comune. Quando non esiste alcun tipo di questo tipo, il tipo viene derivato come .STRING Ad esempio, INT e DOUBLE diventano DOUBLE, mentre STRUCT<i INT> e STRING diventano STRING.

Lo schema ottenuto dalla lettura di una colonna di JSON dati è uguale a quello derivato dal codice seguente.

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

Per derivare lo schema di una singola JSON stringa, usare schema_of_json funzione .

Esempi

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