inline_outer
-Tabellenwert-Generator-Funktion
Gilt für: Databricks SQL
Databricks Runtime
Explodiert ein Array von Strukturen in eine Tabelle mit OUTER
-Semantik.
In Databricks SQL und Databricks Runtime 16.1 und höher unterstützt diese Funktion den Aufruf benannter Parameter.
Syntax
inline_outer(input)
Argumente
input
: Ein ARRAY < STRUCT >-Ausdruck.
Ein Satz von Zeilen, der aus den Feldern in den Strukturelementen des Arrays input
besteht.
Die von inline
generierten Spalten sind die Namen der Felder.
Wenn input
NULL
ist, wird eine einzelne Zeile mit NULL
EN für jede Spalte erzeugt.
Gilt für:
Databricks Runtime 12.1 und früher:
inline_outer
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 über die LATERAL VIEW-Klausel oder
SELECT
-Liste ist veraltet. Rufen Sie stattdesseninline_outer
als table_reference auf.
Beispiele
Gilt für: Databricks Runtime 12.1 und früher:
> 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
Gilt für: Databricks SQL
Databricks Runtime 12.2 LTS und höher:
> 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