Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
SQL do Databricks
Runtime do Databricks
Explode uma matriz de estruturas em uma tabela.
No Databricks SQL e no Databricks Runtime 16.1 e versões superiores, essa função dá suporte à invocação de parâmetro nomeado.
Sintaxe
inline(input)
Argumentos
-
input: uma expressãoARRAY<STRUCT>.
Retornos
Um conjunto de linhas composto pelos campos nos elementos struct da matriz input.
As colunas produzidas por inline são os nomes dos campos.
Se input for NULL, nenhuma linha será produzida.
Aplica-se a:
Databricks Runtime 12.1 e versões anteriores:inlinesó pode ser colocado na listaSELECTcomo a raiz de uma expressão ou seguindo um LATERAL VIEW. Ao colocar a função na listaSELECT, não deve haver nenhuma outra função de gerador na mesma listaSELECTou um UNSUPPORTED_GENERATOR. MULTI_GENERATOR será gerado.Aplica-se a:
SQL do Databricks
Databricks Runtime 12.2 LTS e superior:A invocação da cláusula LATERAL VIEW ou da lista
SELECTé obsoleta. Em vez disso, invoqueinlinecomo uma table_reference.
Exemplos
Aplica-se a:
Databricks Runtime 12.1 e versões 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:
SQL do Databricks
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