Fonction d’agrégation schema_of_json_agg
S’applique à : Databricks SQL Databricks Runtime 13.2 et versions ultérieures
Retourne le schéma combiné de toutes les chaînes JSON dans un groupe au format DDL.
Syntaxe
schema_of_json_agg(jsonStr [, options] ) [FILTER ( WHERE cond ) ]
Cette fonction peut également être appelée en tant que fonction de fenêtre à l’aide de la clause OVER
.
Arguments
jsonStr
: littéralSTRING
avecJSON
.options
: littéralMAP
facultatif dont les clés et les valeurs sontSTRING
. Pour plus de détails sur les options, consultez la fonction from_json.cond
: expression de langageBOOLEAN
facultative qui filtre les lignes utilisées pour l’agrégation.
Retours
STRING
contenant une définition d’un tableau de structs avec des champs de chaînes n
où les noms des colonnes sont dérivés des ensemble de clés JSON
distincts.
Les valeurs de champ contiennent les types SQL mis en forme dérivés.
Le schéma de chaque enregistrement est fusionné par nom de champ.
Lorsque deux champs portant le même nom ont un type différent entre les enregistrements, Azure Databricks utilise le type le moins courant.
Lorsqu’il n’existe aucun type de ce type, le type est dérivé en tant que STRING
.
Par exemple, INT
et DOUBLE
deviennent DOUBLE
, tandis que STRUCT<i INT>
et STRING
deviennent STRING
.
Le schéma obtenu à partir de la lecture d’une colonne de données JSON
est le même que celui dérivé de ce qui suit.
SELECT * FROM json.`/my/data`;
Pour dériver le schéma d’une chaîne unique JSON
, utilisez la fonction schema_of_json.
Exemples
> 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>>