Compartir a través de


inline (función de generador con valores de tabla)

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí 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ón ARRAY<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: check marked yes Databricks Runtime 12.1 y versiones posteriores:

    inline solo se puede colocar en la lista de SELECT como raíz de una expresión o después de un LATERAL VIEW. Al colocar la función en la lista SELECT, no debe haber ninguna otra función generadora en la misma lista SELECT o se genera UNSUPPORTED_GENERATOR. MULTI_GENERATOR.

  • Se aplica acasilla marcada como sí Databricks SQL casilla marcada como Sí 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, invoca inline como un table_reference.

Ejemplos

Se aplica a: check marked yes 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 acasilla marcada como sí Databricks SQL casilla marcada como Sí 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