Compartir vía


schema_of_json_agg (función de agregado)

Se aplica a: casilla marcada como Sí Databricks SQL casilla marcada como Sí 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: Un STRING literal con JSON.
  • options: Un MAP literal opcional con claves y valores STRING. Para detalles sobre las opciones, consulte from_json (función).
  • cond: Una expresión BOOLEAN 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>>