inline
funzione generatore di valori di tabella
Si applica a: Databricks SQL
Databricks Runtime
Esplode un array di strutture in una tabella.
In Databricks SQL e Databricks Runtime 16.1 e versioni successive questa funzione supporta invocazione di parametri denominati.
Sintassi
inline(input)
Argomenti
-
input
: espressioneARRAY<STRUCT>
.
Valori restituiti
Set di righe composte dai campi degli elementi struct dell'array input
.
Le colonne generate da inline
sono i nomi dei campi.
Se input
non viene NULL
generata alcuna riga.
Si applica a:
Databricks Runtime 12.1 e versioni precedenti:
inline
può essere posizionato solo come radice di un'espressione nell'elencoSELECT
o dopo un LATERAL VIEW. Quando si inserisce la funzione nell'elenco diSELECT
, non deve essere presente alcuna altra funzione generatrice nello stesso elenco diSELECT
, altrimenti viene generato l'errore 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
invece come table_reference.
Esempi
Si applica a: Databricks Runtime 12.1 e versioni precedenti:
> 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
Si applica a: Databricks SQL
Databricks Runtime 12.2 LTS e versioni successive:
> 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