Delen via


schema_of_json_agg statistische functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan 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: Een STRING letterlijke met JSON.
  • options: een optioneel MAP-literal met sleutels en waarden die STRINGzijn. Zie from_json functie voor meer informatie over opties.
  • cond: Een optionele BOOLEAN 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>>