inline
-Tabellenwert-Generator-Funktion
Gilt für: Databricks SQL Databricks Runtime
Erstellt aus einem Array von Strukturen eine Tabelle.
Syntax
inline(expr)
Argumente
expr
: EinARRAY<STRUCT>
-Ausdruck.
Gibt zurück
Ein Satz von Zeilen, der aus den Feldern in den Strukturelementen des Arrays expr
besteht.
Die von inline
generierten Spalten sind die Namen der Felder.
Wenn expr
NULL
ist, werden keine Zeilen generiert.
Gilt für: Databricks Runtime 12.1 und früher:
inline
kann nur in derSELECT
-Liste als Stamm eines Ausdrucks oder nach einer LATERAL VIEW-Klausel platziert werden. Beim Platzieren der Funktion in derSELECT
-Liste darf keine andere Generatorfunktion in derselbenSELECT
-Liste oder vorhanden sein, da ansonsten die Fehlermeldung UNSUPPORTED_GENERATOR.MULTI_GENERATOR ausgelöst wird.Gilt für: Databricks SQL Databricks Runtime 12.2 LTS und höher:
Der Aufruf der LATERAL VIEW-Klausel oder der
SELECT
-Liste ist veraltet. Rufen Sie stattdesseninline
als table_reference auf.
Beispiele
Gilt für: Databricks Runtime 12.1 und früher:
> 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
Gilt für: Databricks SQL Databricks Runtime 12.2 LTS und höher:
> 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