inline
generatorfunctie met tabelwaarden
Van toepassing op: Databricks SQL
Databricks Runtime
Explodeert een matrix met structs in een tabel.
In Databricks SQL en Databricks Runtime 16.1 en hoger ondersteunt deze functie aanroep met benoemde parameters.
Syntaxis
inline(input)
Argumenten
-
input
: EenARRAY<STRUCT>
expressie.
Retouren
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
er NULL
geen rijen worden geproduceerd.
Van toepassing op:
Databricks Runtime 12.1 en eerder:
inline
kan alleen in deSELECT
lijst worden geplaatst als wortel van een expressie of volgend op een LATERAL VIEW. Wanneer de functie in deSELECT
-lijst wordt geplaatst, mag er geen andere generatorfunctie in dezelfdeSELECT
-lijst zijn; anders wordt UNSUPPORTED_GENERATOR.MULTI_GENERATOR opgeworpen.Van toepassing op:
Databricks SQL
Databricks Runtime 12.2 LTS en hoger:
Aanroep van de LATERAL VIEW clausule of de
SELECT
lijst wordt afgeraden. Roep in plaats daarvaninline
aan als een table_reference.
Voorbeelden
Van toepassing op: Databricks Runtime 12.1 en eerder:
> 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
Van toepassing op: Databricks SQL
Databricks Runtime 12.2 LTS en hoger:
> 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