Delen via


inline_outer generatorfunctie met tabelwaarde

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Explodeert een matrix met structs in een tabel met OUTER semantiek.

Syntaxis

inline_outer(expr)

Argumenten

  • expr: Een MATRIX-STRUCT-expressie < > .

Een set rijen die bestaan uit de velden in de struct-elementen van de matrix expr. De kolommen die door inline de velden worden geproduceerd, zijn de namen van de velden.

Als expr er één rij met NULL NULLs voor elke kolom wordt geproduceerd.

  • Van toepassing op: vinkje als ja aan Databricks Runtime 12.1 en eerder:

    inline_outer kan alleen in de SELECT lijst worden geplaatst als hoofdmap van een expressie of na een LATERALE WEERGAVE. Wanneer u de functie in de SELECT lijst plaatst, mag er geen andere generatorfunctie in dezelfde SELECT lijst of UNSUPPORTED_GENERATOR zijn. MULTI_GENERATOR wordt opgevoed.

  • Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 12.2 LTS en hoger:

    Aanroep vanuit de COMPONENT LATERAL VIEW of de SELECT lijst is afgeschaft. Roep in plaats daarvan inline_outer aan als een table_reference.

Voorbeelden

Van toepassing op: vinkje als ja aan Databricks Runtime 12.1 en eerder:

> 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

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 12.2 LTS en hoger:

> 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