Fonction de générateur table inline
S’applique à : Databricks SQL
Databricks Runtime
Éclate un tableau de structs dans une table.
Dans Databricks SQL et Databricks Runtime 16.1 et versions ultérieures, cette fonction prend en charge l’appel de paramètre nommé.
Syntaxe
inline(input)
Arguments
input
: Une expressionARRAY<STRUCT>
.
Retours
Un ensemble de lignes composé de champs dans les éléments struct du tableau input
.
Les colonnes générées par inline
sont les noms des champs.
Si input
est NULL
, aucune ligne n’est générée.
S’applique à :
Databricks Runtime 12.1 et versions précédentes :
inline
peut uniquement être placé dans la listeSELECT
en tant que racine d’une expression ou à la suite d’un LATERAL VIEW. Lorsque vous placez la fonction dans la listeSELECT
, il ne doit pas y avoir une autre fonction de générateur dans la même listeSELECT
sinon UNSUPPORTED_GENERATOR.MULTI_GENERATOR est déclenché.S’applique à :
Databricks SQL
Databricks Runtime 12.2 LTS et versions ultérieures :
L'invocation à partir de la clause LATERAL VIEW ou de la liste
SELECT
est déconseillée. En lieu et place, appelezinline
en tant que table_reference.
Exemples
S’applique à : Databricks Runtime 12.1 et versions précédentes :
> 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
S’applique à : Databricks SQL
Databricks Runtime 12.2 LTS et versions ultérieures :
> 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