inline_outer
tabelgewaardeerde generatorfunctie
Van toepassing op: Databricks SQL
Databricks Runtime
Explodeert een matrix met structs in een tabel met OUTER
semantiek.
In Databricks SQL en Databricks Runtime 16.1 en hoger ondersteunt deze functie benoemde parameter aanroep.
Syntaxis
inline_outer(input)
Argumenten
-
input
: Een MATRIX-STRUCT-expressie <> .
Een set rijen die bestaan uit de velden in de struct-elementen van de matrix input
.
De kolommen die door inline
worden geproduceerd, zijn de namen van de velden.
Als input
NULL
is, wordt één rij met NULL
's voor elke kolom geproduceerd.
Van toepassing op:
Databricks Runtime 12.1 en eerder:
inline_outer
kan alleen in deSELECT
-lijst worden geplaatst als wortel van een uitdrukking of na een LATERAL VIEW. Bij het plaatsen van de functie in deSELECT
lijst mag er geen andere generatorfunctie in dezelfdeSELECT
lijst zijn, anders wordt UNSUPPORTED_GENERATOR.MULTI_GENERATOR gegenereerd.Van toepassing op:
Databricks SQL
Databricks Runtime 12.2 LTS en hoger:
Aanroep van de LATERAL VIEW clausule of de
SELECT
lijst is verouderd. Roep in plaats daarvaninline_outer
aan als een table_reference.
Voorbeelden
Van toepassing op: 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: Databricks SQL
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