Função de agregação schema_of_json_agg
Aplica-se a: SQL do Databricks 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
: umSTRING
literal comJSON
.options
: umMAP
literal opcional com chaves e valores sendoSTRING
. Para obter detalhes sobre as opções, confira Função from_json.cond
: uma expressãoBOOLEAN
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>>