schema_of_json_agg
agregační funkce
Platí pro: Databricks SQL Databricks Runtime 13.2 a novější
Vrátí kombinované schéma všech řetězců JSON ve skupině ve formátu DDL.
Syntaxe
schema_of_json_agg(jsonStr [, options] ) [FILTER ( WHERE cond ) ]
Tuto funkci lze také vyvolat jako funkci okna pomocí OVER
klauzule.
Argumenty
jsonStr
STRING
: Literál sJSON
.options
: VolitelnýMAP
literál s klíči a hodnotami, které jsouSTRING
. Podrobnosti o možnostech najdete v tématu from_json funkce.cond
: VolitelnýBOOLEAN
výraz filtrující řádky použité pro agregaci.
Návraty
A STRING
holding a definition of an array of structs with n
fields of strings where the column names are derived from the distinct set of JSON
keys .
Hodnoty polí obsahují odvozené formátované typy SQL.
Schéma každého záznamu se sloučí podle názvu pole.
Pokud mají dvě pole se stejným názvem jiný typ napříč záznamy, Azure Databricks používá nejméně společný typ.
Pokud takový typ neexistuje, typ je odvozen jako STRING
.
Například INT
a DOUBLE
stát DOUBLE
se , zatímco STRUCT<i INT>
a STRING
stát STRING
se .
Schéma získané ze čtení sloupce JSON
dat je stejné jako schéma odvozené z následujícího příkladu.
SELECT * FROM json.`/my/data`;
K odvození schématu jednoho JSON
řetězce použijte funkci schema_of_json.
Příklady
> 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>>