Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2011, 10h35   #1
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
Par défaut Spliter deux lignes dépendantes l'une de l'autre

Bonjour,

Actuellement, j'ai un fichier.csv avec deux lignes dedans :
Code :
1
2
3
 
Liste_id;1,2,3,4,5;
Liste_codes;OK,KO,OK,OK,KO;
ces deux listes sont dépendantes puisque l'id 1 possède le code OK, l'id 2 le code KO, etc ...

Actuellement, et a partir de ce fichier, j'ai fait un tFileInputDelimited suivi de plusieurs filterRow pour stocker dans le context ma liste d'id et ma liste de codes.
J'ai donc :
Code :
1
2
3
 
context.liste_id = 1,2,3,4,5
context.liste_cod = OK,KO,OK,OK,KO
Maintenant, j'aimerai savoir comment reconstruire un flux à partir de ces deux variables de contexte et surtout comment faire pour dire, "pour l'id 1, si c'est "OK" tu fais ça en base, sinon tu fais autre chose et ainsi de suite pour les autres id .

Merci pour votre aide
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 11h50   #2
Membre habitué
 
Etienne Menuet
Inscription : mai 2010
Messages : 75
Détails du profil
Informations personnelles :
Nom : Etienne Menuet
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2010
Messages : 75
Points : 103
Points : 103
Bonjour,

Voici le design d'un job qui fait ce que tu veux, mais sans utiliser les contexts.

1) tu lis ton fichier avec 2 colonnes
2) tu utilises le tNormalize sur la colonne liste pour passer a N enregistrements de type clef/valeur clef = 1ere colonne, valeur= 1 element de la 2eme colonne
3) un tMap avec une nouvelle colonne en sortie de type integer alimenté par une sequence : Numeric.sequence(row2.libelle ,1,1) row2.libelle est ta première colonne de libelle que tu retires de la sortie du tMap
4) un tDenormalize sur la colonne liste ( ta 2eme colonne ) pour créer les couple id/code
5) un flowToIterate pour passer en mode itération et faire tes test pour chaque cas
6) un tJava qui ne fait rien ( il est la pour le design )
7)des message box pour simuler tes traitements OK et KO.
Le test est a placé dans le lien Run-If en récuperant la variable global du tFlowToIterate : "OK".equals(((String)globalMap.get("row4.code")))
et "KO".equals(((String)globalMap.get("row4.code")))
Images attachées
Type de fichier : jpg job.jpg (59,5 Ko, 6 affichages)
emenuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 13h29   #3
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
merci pour ta réponse.
Je vais mettre ça en place.
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h20.


 
 
 
 
Partenaires

Hébergement Web