0
votes

Split String à l'aide du délimiteur et utilisez-le dans une déclaration

Nous avons deux tables d'abord contenant un code pour chaque tâche à chaque exécution. La 2e table contient des codes de toutes les tâches à chaque exécution. Comment exécuter une étincelle SQL diviser la colonne dans la 2e table en fonction d'un délimiteur et l'utiliser dans et dans l'instruction dans la première table

Les tables ressemblent à ceci p>

Table F1 P> xxx pré>

Table F2 P>

+-------+-----+
| runid | tid |
+-------+-----+
| 1a    | cb4 |
| 1a    | hb5 |
| 1a    | hb6 |
| 1b    | gh6 |
| 1b    | gh7 |
+-------+-----+


0 commentaires

3 Réponses :


0
votes

Utiliser Vue latérale code> avec EXPLODE CODE> Pour obtenir une personne par ligne, puis utilisez-le pour Joindre code>.

with exploded_f2 as
(select runid,tid,expl_tid
 from f2
 lateral view explode(split(tid,',')) tbl as expl_tid
) 
select f1.*
from f1
join exploded_f2 f2 on f1.tid = f2.expl_tid


0 commentaires

0
votes

Voici une autre version: xxx

puis rejoindre df1 et df3 xxx


0 commentaires

0
votes

Chargement des données comme fichier plat délimité à tuyau xxx pré>

explosent à l'aide de la virgule comme délimiteur et renommez la colonne éclatée en tant que TID H1>
df2=f1.join(f2_alter,["runid","tid"]).show()


+-----+---+
|runid|tid|
+-----+---+
|   1a|cb4|
|   1a|hb5|
|   1a|hb6|
|   1b|gh6|
|   1b|gh7|
+-----+---+


0 commentaires