inline
(función de generador con valores de tabla)
Se aplica a: Databricks SQL Databricks Runtime
Expande una matriz de estructuras en una tabla.
En Databricks SQL y Databricks Runtime 16.1 y versiones posteriores, esta función permite la invocación de parámetros con nombre .
Sintaxis
inline(input)
Argumentos
input
: una expresiónARRAY<STRUCT>
.
Devoluciones
Conjunto de filas compuestas por los campos de los elementos de estructura de la matriz input
.
Las columnas generadas por inline
son los nombres de los campos.
Si input
es NULL
, no se generará ninguna fila.
Se aplica a: Databricks Runtime 12.1 y versiones posteriores:
inline
solo se puede colocar en la lista deSELECT
como raíz de una expresión o después de un LATERAL VIEW. Al colocar la función en la listaSELECT
, no debe haber ninguna otra función generadora en la misma listaSELECT
o se genera UNSUPPORTED_GENERATOR. MULTI_GENERATOR.Se aplica a Databricks SQL Databricks Runtime 12.2 LTS y versiones posteriores:
La invocación de la cláusula ,LATERAL VIEW o, o de la lista
SELECT
, queda obsoleta. En su lugar, invocainline
como un table_reference.
Ejemplos
Se aplica a: Databricks Runtime 12.1 y versiones posteriores:
> 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
Se aplica a Databricks SQL Databricks Runtime 12.2 LTS y versiones posteriores:
> 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