Partilhar via


inline 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.

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

Sintaxe

inline(input)

Argumentos

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

Devoluções

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 não houver NULL linhas são produzidas.

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

    inline 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 como um table_reference.

Exemplos

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

> 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

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

> 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