schema_of_json_agg
statistische functie
Van toepassing op: Databricks SQL Databricks Runtime 13.2 en hoger
Retourneert de gecombineerde schema van alle JSON-tekenreeksen in een groep in DDL-indeling.
Syntaxis
schema_of_json_agg(jsonStr [, options] ) [FILTER ( WHERE cond ) ]
Deze functie kan ook worden aangeroepen als een window-functie met behulp van de OVER
clausule.
Argumenten
-
jsonStr
: EenSTRING
letterlijke metJSON
. -
options
: Een optionele letterlijkeMAP
met sleutels en values zijnSTRING
. Zie from_json functie voor meer informatie over opties. -
cond
: Een optioneleBOOLEAN
expressie die de rijen filtert die worden gebruikt voor aggregatie.
Retouren
Een STRING
met een definitie van een matrix van structs met n
velden tekenreeksen where de namen van de column worden afgeleid van de afzonderlijke set van JSON
sleutels.
Het veld values de afgeleide, opgemaakte SQL-typen bevatten.
De schema van elk record wordt samengevoegd op basis van de veldnaam.
Wanneer twee velden met dezelfde naam een ander type voor records hebben, wordt in Azure Databricks het minst gangbare type gebruikt.
Als er geen dergelijk type bestaat, wordt het type afgeleid als een STRING
.
Bijvoorbeeld, INT
en DOUBLE
word DOUBLE
, terwijl STRUCT<i INT>
en STRING
wordt STRING
.
De schema verkregen bij het lezen van een column van JSON
gegevens is hetzelfde als die afgeleid van het volgende.
SELECT * FROM json.`/my/data`;
Als u de schema van één JSON
tekenreeks wilt afleiden, gebruikt u schema_of_json functie.
Voorbeelden
> 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>>