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 14/12/2010, 16h10   #1
Invité régulier
 
lle lle
Inscription : novembre 2009
Messages : 29
Détails du profil
Informations personnelles :
Nom : lle lle

Informations forums :
Inscription : novembre 2009
Messages : 29
Points : 5
Points : 5
Par défaut Concatenation de Champs/Fichiers

Bonjour,

Voici mon probleme et pour l'instant je ne vois pas comment faire :

J'ai un fichier (que j'ai generer via Talend) qui donne cela en sortie :

5101|0430071530|14/12/2010
5101|0430071532|14/12/2010
5101|0430071529|14/12/2010
5103|0430071516|15/12/2010
5103|0430071517|15/12/2010

Je souhaiterais le transformer de cette maniere :

5101|0430071530|14/12/2010|0430071530
5101|0430071532|14/12/2010|0430071530
5101|0430071529|14/12/2010|0430071530
5103|0430071516|15/12/2010|0430071516
5103|0430071517|15/12/2010|0430071516

Et je ne vois pas comment faire. Pouvez vous m'aider ou m'orienter ?

merci
ytsack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 17h04   #2
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 812
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 812
Points : 1 084
Points : 1 084
Avec un
tFileInputdelimited ->tMap -> tFileOutputDelimited
Si c'est le même fichier et qu'il y a un problème de verrou, il faudrait passer par un fichier temporaire.
__________________
Pensez à la fonction Recherche
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 17h07   #3
Invité régulier
 
lle lle
Inscription : novembre 2009
Messages : 29
Détails du profil
Informations personnelles :
Nom : lle lle

Informations forums :
Inscription : novembre 2009
Messages : 29
Points : 5
Points : 5
Je genere ce fichier deja de cette maniere. En quoi refaire une passe tfileinput->tmap-> tfileoutput va me rajouter le dernier champ ??? et surtout que sa valeur est differente. (????)
ytsack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 17h32   #4
Membre actif
 
Consultant informatique
Inscription : mars 2003
Messages : 130
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2003
Messages : 130
Points : 181
Points : 181
explique mieux ton probleme
(rien ne t'empeche de modifier ta génération de fichier)
tu ne nous donne pas les éléments pour répondre .
On ne sais pas d'ou viens la valeur du nouveau champs
kisskool45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 18h20   #5
Invité régulier
 
lle lle
Inscription : novembre 2009
Messages : 29
Détails du profil
Informations personnelles :
Nom : lle lle

Informations forums :
Inscription : novembre 2009
Messages : 29
Points : 5
Points : 5
Desole je pensais que l'exemple se suffisait a lui meme vu que le nouveau champ se trouve a :

5101|0430071530|14/12/2010

A chaque fois c'est le second champ du premier enregistrement selon la clef 5101/....../14/12/2010 (qui est une date)
ytsack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 14h51   #6
Membre du Club
 
Homme Slim
Analyste Programmeur
Inscription : janvier 2008
Messages : 108
Détails du profil
Informations personnelles :
Nom : Homme Slim
Localisation : Congo-Kinshasa

Informations professionnelles :
Activité : Analyste Programmeur

Informations forums :
Inscription : janvier 2008
Messages : 108
Points : 50
Points : 50
Par défaut detail

5103|0430071516|15/12/2010|0430071516
5103|0430071517|15/12/2010|0430071516

dans la première ligne tu as 0430071516 (2ieme champs) et a la fin 0430071516 aussi
Mais pour la seconde, tu as 0430071517 tu as toujours 0430071516 a la fin? pour quoi ce changement?
slimlus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 16h35   #7
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 812
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 812
Points : 1 084
Points : 1 084
Ah oui je n'avais pas vu

Il doit falloir faire un 2eme sous-job avec le fichier à la fois en entrée et en lookup avec une jointure sur la première colonne. Pour la règle de gestion s'il faut prendre le plus petit num il faudrait mettre un tAggregateRow entre le tFileInput en lookup et le tMap.
__________________
Pensez à la fonction Recherche
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 10h00   #8
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
Bonjour,

A priori, cette problématique peut-être résolue en triant les données en entrée, et en utilisant des variables dans un tMap.

Si je reprends ton exemple :

Chp1|Chp2|Chp3
5101|0430071530|14/12/2010
5101|0430071532|14/12/2010
5101|0430071529|14/12/2010
5103|0430071516|15/12/2010
5103|0430071517|15/12/2010

Les variables à déclarer dans le tMap doivent ressembler à quelque chose comme ça :

- Chp2_Origine = Si Var.Chp3_avant est null ou Var.Chp3_avant <> In.Chp3 Alors Chp2 Sinon Chp2_Origine
- Chp3_avant = In.Chp3

Tu peux ensuite récupérer ton champ via la variable Chp2_Origine.

Nicolas
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2010, 12h43   #9
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 60
Points : 35
Points : 35
La solution de DevNico est bonne.

Sinon tu peux egalement te facilité la vie grace au composant tBeakRow (sur TalendExchange pas dans le produit nativement), qui te trie tes données et sur lesquelles tu peux avoir une clé de rupture.

Apres dans un test, tu verifies que si isFirst = true, tu stock la valeur dans une variable de la globalMap par exemple et tu la réutilise pour ta dernière colonne.
Oreste est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h44.


 
 
 
 
Partenaires

Hébergement Web