schema_of_json_agg
(función de agregado)
Se aplica a: Databricks SQL Databricks Runtime 13.2 y versiones posteriores
Devuelve el esquema combinado de todas las cadenas JSON en un grupo en formato DDL.
Sintaxis
schema_of_json_agg(jsonStr [, options] ) [FILTER ( WHERE cond ) ]
Esta función también se puede invocar como una función de ventana mediante la cláusula OVER
.
Argumentos
jsonStr
: UnSTRING
literal conJSON
.options
: UnMAP
literal opcional con claves y valoresSTRING
. Para detalles sobre las opciones, consulte from_json (función).cond
: Una expresiónBOOLEAN
opcional que filtra las filas usadas para la agregación.
Devoluciones
Una n
que contiene una definición de una matriz de structs con campos STRING
de cadenas donde los nombres de columna se derivan del conjunto distintivo de claves JSON
.
Los valores de los campos contienen los tipos SQL con formato derivados.
El esquema de cada registro se combina por el nombre de campo.
Cuando dos campos con el mismo nombre tienen un tipo diferente entre registros, Azure Databricks usa el tipo menos común.
Cuando no hay tal tipo, se deriva como STRING
.
Por ejemplo, INT
y DOUBLE
se convierten en DOUBLE
mientras que STRUCT<i INT>
y STRING
se convierte en STRING
.
El esquema obtenido de la lectura de una columna de datos JSON
es el mismo que el que se deriva de lo siguiente.
SELECT * FROM json.`/my/data`;
Para derivar el esquema de una sola cadena JSON
, use la función schema_of_json.
Ejemplos
> 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>>