Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime 13.2 och senare
Returnerar det kombinerade schemat för alla JSON-strängar i en grupp i DDL-format.
Syntax
schema_of_json_agg(jsonStr [, options] ) [FILTER ( WHERE cond ) ]
Den här funktionen kan också anropas som en -fönsterfunktion med hjälp av OVER-satsen.
Argument
-
jsonStr: EnSTRINGliteral medJSON. -
options: En valfriMAPliteral där nycklar och värden ärSTRING. Mer information om alternativ finns ifrom_jsonfunktion. -
cond: Ett valfrittBOOLEANuttryck som filtrerar de rader som används för aggregering.
Returer
En STRING som innehåller en definition av en matris av strukturer med n strängfält där kolumnnamnen härleds från den distinkta uppsättningen av JSON nycklar.
Fältvärdena innehåller de härledda formaterade SQL-typerna.
Schemat för varje post sammanfogas baserat på fältnamn.
När två fält med samma namn har en annan typ mellan poster använder Azure Databricks den minst vanliga typen.
När det inte finns någon sådan typ härleds typen som en STRING.
Till exempel INT och DOUBLE bli DOUBLE, medan STRUCT<i INT> och STRING blir STRING.
Schemat som hämtas från att läsa en kolumn med JSON data är detsamma som det som härleds från följande.
SELECT * FROM json.`/my/data`;
Om du vill härleda schemat för en enskild JSON sträng använder du schema_of_json funktionen .
Exempel
> 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>>