Condividi tramite


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 finestra usando la clausola OVER.

Argomenti

  • jsonStr: valore STRING letterale con JSON.
  • options: Un letterale MAP facoltativo con chiavi e valori STRINGinclusi. 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 che contiene una definizione di un array di strutture con n campi di stringhe in cui i nomi delle colonne derivano dall'insieme distinto di chiavi JSON. I valori dei campi contengono i tipi SQL formattati derivati.

La struttura di ogni record viene combinata 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 dati JSON è uguale a quello derivato dal codice seguente.

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

Per derivare lo schema di una singola stringa di JSON, 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>>