Udostępnij za pośrednictwem


schema_of_json_agg funkcja agregacji

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 13.2 i nowsze

Zwraca połączony schemat wszystkich ciągów JSON w grupie w formacie DDL.

Składnia

schema_of_json_agg(jsonStr [, options] ) [FILTER ( WHERE cond ) ]

Tę funkcję można również wywołać jako funkcję okna przy użyciu klauzuli OVER .

Argumenty

  • jsonStr: literał STRING z JSON.
  • options: opcjonalny MAP literał z kluczami i wartościami to STRING. Aby uzyskać szczegółowe informacje na temat opcji, zobacz from_json funkcja.
  • cond: opcjonalne BOOLEAN wyrażenie filtrujące wiersze używane do agregacji.

Zwraca

Trzymając STRING definicję tablicy struktur z n polami ciągów, w których nazwy kolumn pochodzą z odrębnego JSON zestawu kluczy . Wartości pól przechowują pochodne sformatowane typy SQL.

Schemat każdego rekordu jest scalony ze sobą według nazwy pola. Jeśli dwa pola o tej samej nazwie mają inny typ w rekordach, usługa Azure Databricks używa najmniej typowego typu. Jeśli taki typ nie istnieje, typ jest pochodny jako STRING. Na przykład INT i DOUBLE stają się wartościami , a STRING STRUCT<i INT> następnie DOUBLEstają się .STRING

Schemat uzyskany z odczytu kolumny JSON danych jest taki sam jak schemat pochodzący z poniższego.

SELECT * FROM json.`/my/data`;

Aby uzyskać schemat pojedynczego JSON ciągu, użyj funkcji schema_of_json.

Przykłady

> 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>>