Partilhar via


inline_outer função geradora de valores de tabela

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime

Explode uma matriz de estruturas em uma tabela com OUTER semântica.

No Databricks SQL e no Databricks Runtime 16.1 ou superior, esta função suporta invocação de parâmetro nomeado.

Sintaxe

inline_outer(input)

Argumentos

  • input: Uma expressão ARRAY < STRUCT > .

Um conjunto de linhas composto pelos campos presentes nos elementos struct do array input. As colunas produzidas por inline são os nomes dos campos.

Se input é NULL uma única linha com NULLs para cada coluna é produzida.

  • Aplica-se a:Marque Sim Databricks Runtime 12.1 e anteriores:

    inline_outer só pode ser colocado na lista de SELECT como a raiz de uma expressão ou seguindo um LATERAL VIEW. Ao colocar a função na lista SELECT, não pode haver qualquer outra função geradora na mesma lista SELECT, caso contrário, UNSUPPORTED_GENERATOR.MULTI_GENERATOR é acionada.

  • Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 12.2 LTS e superior:

    A invocação da cláusula LATERAL VIEW ou da lista SELECT está obsoleta. Em vez disso, invoque inline_outer como um table_reference.

Exemplos

Aplica-se a:Marque Sim Databricks Runtime 12.1 e 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

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 12.2 LTS e superior:

> 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