Partager via


Fonction de générateur table inline

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

Éclate un tableau de structs dans une table.

Syntaxe

inline(expr)

Arguments

  • expr: Une expression ARRAY<STRUCT>.

Retours

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, aucune ligne n’est générée.

  • S’applique à : oui coché Databricks Runtime 12.1 et versions précédentes :

    inline 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 en tant que table_reference.

Exemples

S’applique à : coche marquée oui Databricks Runtime 12.1 et versions précédentes :

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

> SELECT inline(array(struct(1, 'a'), struct(1, 'b'))),
         inline(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(array(struct(1, 'a'), struct(2, 'b'))) AS i;
 1  a Spark SQL
 2  b Spark SQL

> SELECT i1.*, i2.*, 'Spark SQL'
   FROM  inline(array(struct(1, 'a'), struct(1, 'b'))) AS i1,
         inline(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