Partilhar via


schema_of_json_agg função agregar

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 13.2 e posterior

Retorna o schema combinado de todas as cadeias JSON num grupo no formato DDL.

Sintaxe

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

Esta função também pode ser invocada como uma função window usando a cláusula OVER.

Argumentos

  • jsonStr: Um STRING literal com JSON.
  • options: Um opcional MAP literal com teclas e values sendo STRING. Para obter detalhes sobre as opções, consulte from_json função.
  • cond: Uma expressão opcional BOOLEAN que filtra as linhas usadas para agregação.

Devoluções

Um STRING que contém uma definição de uma matriz de estruturas com n campos de cadeias de caracteres where os nomes column são derivados das set distintas de JSON chaves. O campo values contém os tipos SQL formatados derivados.

O schema de cada registo é combinado pelo nome do campo. Quando dois campos com o mesmo nome têm um tipo diferente entre registros, o Azure Databricks usa o tipo menos comum. Quando esse tipo não existe, o tipo é derivado como um STRING. Por exemplo, INT e DOUBLE tornar-se DOUBLE, enquanto STRUCT<i INT> e STRING tornar-se STRING.

O schema obtido a partir da leitura de uma column de dados JSON é igual ao derivado do seguinte.

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

Para derivar o schema de uma única cadeia de JSON, use schema_of_json função.

Exemplos

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