inline_outer
funzione generatore con valori di tabella
Si applica a: Databricks SQL Databricks Runtime
Esplode un array di strutture in una tabella con semantica OUTER
.
In Databricks Runtime 16.1 e versioni successive questa funzione supporta chiamata di parametri denominati.
Sintassi
inline_outer(input)
Argomenti
-
input
: espressione ARRAY < STRUCT > .
Set di righe composte dai campi degli elementi struct dell'array input
.
Le colonne generate da inline
sono i nomi dei campi.
Se input
è NULL
viene generata una singola riga con NULL
s per ogni colonna.
Si applica a: Databricks Runtime 12.1 e versioni precedenti:
inline_outer
può essere posizionato solo come radice di un'espressione nell'elencoSELECT
o dopo un LATERAL VIEW. Quando si inserisce la funzione nell'elencoSELECT
non deve essere presente alcuna altra funzione generatrice nello stesso elencoSELECT
oppure viene sollevata l'eccezione UNSUPPORTED_GENERATOR.MULTI_GENERATOR.Si applica a: Databricks SQL Databricks Runtime 12.2 LTS e versioni successive:
L'invocazione dalla clausola ,LATERAL VIEW, o dall'elenco
SELECT
è deprecata. Richiamareinline_outer
invece come table_reference.
Esempi
Si applica a: Databricks Runtime 12.1 e versioni precedenti:
> 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
Si applica a: Databricks SQL Databricks Runtime 12.2 LTS e versioni successive:
> 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