schema_of_json_agg
statistische functie
Van toepassing op: Databricks SQL
Databricks Runtime 13.2 en hoger
Retourneert het 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 vensterfunctie met behulp van de OVER
clausule.
Argumenten
-
jsonStr
: EenSTRING
letterlijke metJSON
. -
options
: een optioneelMAP
-literal met sleutels en waarden dieSTRING
zijn. 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 reeks van structuren met n
velden van strings waarin de kolomnamen worden afgeleid van de unieke set JSON
sleutels.
De veldwaarden bevatten de afgeleide, opgemaakte SQL-typen.
Het schema van elke 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
.
Het schema dat is verkregen bij het lezen van een kolom met JSON
gegevens is hetzelfde als het schema dat is afgeleid van het volgende.
SELECT * FROM json.`/my/data`;
Als u het 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>>