funzione generatore a valori inline
table
Si applica a: Databricks SQL Databricks Runtime
Esplode una matrice di strutture in un table.
In Databricks Runtime 16.1 e versioni successive questa funzione supporta chiamata di parametri denominati.
Sintassi
inline(input)
Argomenti
-
input
: espressioneARRAY<STRUCT>
.
Valori restituiti
Un set di righe composte dai campi nella struttura degli elementi dell'array input
.
I columns prodotti 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 inserito solo nellaSELECT
list come radice di un'espressione o dopo un LATERAL VIEW. Quando si inserisce la funzione nelSELECT
list, non deve esistere un'altra funzione generatrice nella stessaSELECT
list o , altrimenti viene sollevato 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 dalla
SELECT
list è 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