Fonction de générateur table inline_outer

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Éclate un tableau de structs dans une table avec la sémantique OUTER.

Syntaxe

inline_outer(expr)

Arguments

  • expr : expression ARRAY < STRUCT >.

Un ensemble de lignes composé de champs dans les éléments struct du tableau expr. Les colonnes générées par inline sont les noms des champs.

Si expr est NULL, une seule ligne avec NULL est générée pour chaque colonne.

  • S’applique à :oui coché Databricks Runtime 12.1 et versions antérieures :

    inline_outer peut uniquement être placé dans la liste SELECT en tant que racine d’une expression ou après LATERAL VIEW. Lorsque vous placez la fonction dans la liste SELECT, il ne doit pas y avoir une autre fonction de générateur dans la même liste SELECT sinon UNSUPPORTED_GENERATOR.MULTI_GENERATOR est déclenché.

  • S’applique à :coche marquée oui Databricks SQL oui coché Databricks Runtime 12.2 LTS et versions ultérieures :

    L’appel à partir de la clause LATERAL VIEW ou de la liste SELECT est déconseillé. En lieu et place, appelez inline_outer en tant que table_reference.

Exemples

S’applique à :coche marquée oui Databricks Runtime 12.1 et versions antérieures :

> SELECT inline_outer(array(struct(1, 'a'), struct(2, 'b'))), 'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL

> SELECT inline_outer(array(struct(1, 'a'), struct(1, 'b'))),
         inline_outer(array(struct('c', 1.0), struct('d', 2.0))),
         'Spark SQL';
 1  a Spark SQL
 2  b Spark SQL
Error: UNSUPPORTED_GENERATOR.MULTI_GENERATOR

S’applique à :coche marquée oui Databricks SQL oui coché Databricks Runtime 12.2 LTS et versions ultérieures :

> SELECT i.*, 'Spark SQL'
    FROM inline_outer(array(struct(1, 'a'), struct(2, 'b'))) AS i;
 1  a Spark SQL
 2  b Spark SQL

> SELECT i1.*, i2.*, 'Spark SQL'
   FROM  inline_outer(array(struct(1, 'a'), struct(1, 'b'))) AS i1,
         inline_outer(array(struct('c', 1.0), struct('d', 2.0))) AS i2;
 1      a       c       1.0     Spark SQL
 1      b       c       1.0     Spark SQL
 1      a       d       2.0     Spark SQL
 1      b       d       2.0     Spark SQL