Compartilhar via


Função de agregação schema_of_json_agg

Aplica-se a:marca de verificação sim SQL do Databricks marca de verificação sim Databricks Runtime 13.2 e versões posteriores

Retorna o esquema combinado de todas as cadeias de caracteres JSON em um grupo no formato DDL.

Sintaxe

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

Essa função também pode ser invocada como uma função de janela usando a cláusula OVER.

Argumentos

  • jsonStr: um STRING literal com JSON.
  • options: um MAP literal opcional com chaves e valores sendo STRING. Para obter detalhes sobre as opções, confira Função from_json.
  • cond: uma expressão BOOLEAN opcional que filtra as linhas usadas para agregação.

Devoluções

Uma STRING que contém uma definição de uma matriz de structs com campos n de cadeias de caracteres, em que os nomes das colunas são derivados do conjunto distinto das chaves JSON. Os valores dos campos contêm os tipos SQL formatados derivados.

O esquema de cada registro é mesclado pelo nome do campo. Quando dois campos com o mesmo nome têm um tipo diferente entre os registros, o Azure Databricks usa o tipo menos comum. Quando esse tipo não existe, ele é derivado como um STRING. Por exemplo, INT e DOUBLE tornam-se DOUBLE, já STRUCT<i INT> e STRING tornam-se STRING.

O esquema obtido com a leitura de uma coluna de dados JSON é o mesmo derivado do seguinte.

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

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

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