Compartir a través de


inline_outer (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 con semántica OUTER.

Sintaxis

inline_outer(expr)

Argumentos

  • expr: expresión ARRAY < STRUCT >.

Conjunto de filas compuestas por los campos de los elementos de estructura de la matriz expr. Las columnas generadas por inline son los nombres de los campos.

Si expr es NULL, se genera una sola fila con NULLs para cada columna.

  • Se aplica a check marked yesDatabricks Runtime 12.1 y versiones anteriores:

    inline_outer solo se puede colocar en la lista SELECT como la raíz de una expresión o después de una VISTA LATERAL. 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 a: casilla 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 la lista SELECT está en desuso. En su lugar, invoca inline_outer como un table_reference.

Ejemplos

Se aplica a casilla marcada como sí Databricks Runtime 12.1 y versiones anteriores:

> 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

Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 12.2 LTS y versiones posteriores:

> 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