schema_of_json_agg
função agregar
Aplica-se a: Databricks SQL
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
: UmSTRING
literal comJSON
. -
options
: Um opcionalMAP
literal com teclas e values sendoSTRING
. Para obter detalhes sobre as opções, consulte from_json função. -
cond
: Uma expressão opcionalBOOLEAN
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>>