Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
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: UmaARRAY<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:
Databricks Runtime 12.1 e anteriores:inlinesó pode ser colocado na lista deSELECTcomo a raiz de uma expressão ou seguindo um LATERAL VIEW. Ao colocar a função na listaSELECT, não pode haver qualquer outra função geradora na mesma listaSELECT, caso contrário, UNSUPPORTED_GENERATOR.MULTI_GENERATOR é acionada.Aplica-se a:
Databricks SQL
Databricks Runtime 12.2 LTS e superior:A invocação da cláusula LATERAL VIEW ou da lista
SELECTestá obsoleta. Em vez disso, invoqueinlinecomo um table_reference.
Exemplos
Aplica-se a:
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:
Databricks SQL
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