1. #1
    Futur Membre du Club
    Femme Profil pro
    Etudiante en BI
    Inscrit en
    février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiante en BI
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2018
    Messages : 11
    Points : 7
    Points
    7

    Par défaut Récupération d'un schéma à partir de fichiers avec un nombre de colonnes différent

    Bonjour,

    Dans mon projet Talend, je fais une boucle avec TFileList pour lire des fichiers Excels.
    Ces fichiers n'ont pas le même nombre de colonnes mais ils ont des colonnes portant le même nom
    Je voudrais savoir comment récupérer un schéma avec les données des colonnes de même nom

    exemple : j'ai deux fichiers avec 100 et 105 colonnes et la colonne qui m’intéresse se trouve à la 98 ème colonne ou à la 103ème colonne.
    Je ne peut donc pas récupérer les données en indiquant la position de la colonne, comment faire?

    Merci!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    février 2008
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : février 2008
    Messages : 813
    Points : 1 188
    Points
    1 188

    Par défaut

    Bonjour,

    Il ne me semble pas qu'il soit possible de faire ça avec les composants standards.

    Ce que je ferais :
    1°) Dans un premier sous-job : Parser la première ligne contenant les entêtes de colonne pour identifier les colonnes que tu souhaites récupérer. Et stocker l'information (les indices des colonnes à récupérer) dans une ou des variables de contexte.
    2°) Dans un deuxième sous-job : parser chaque ligne pour récupérer les champs qui correspondent, à partir des infos récupérées du premier sous-job. C'est à dire récupérer pour chaque ligne les champs correspondants aux indices.

    Nicolas

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Etudiante en BI
    Inscrit en
    février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiante en BI
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2018
    Messages : 11
    Points : 7
    Points
    7

    Par défaut

    Merci pour ta réponse, J'ai fais cela grâce à la page internet http://bekwam.blogspot.fr/2011/06/dy...en-studio.html
    En effet cela permet de répondre à mon problème mais j'aurais voulu faire ça sur un nombre important de fichiers et donc avec un tFileList.
    Serait-il possible de le faire en parcourant un répertoire?

    Sylvie

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    février 2008
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : février 2008
    Messages : 813
    Points : 1 188
    Points
    1 188

    Par défaut

    Effectivement, c'est bien expliqué sur cette page. ;-)

    Si tu souhaites faire le même traitement sur tous les fichiers de ton répertoire, effectivement il faut utiliser un tFileList.

    Tu places ce tFileList avant les sous-jobs, et tu le relies au premier composant (tSetGlobalVar) avec un lien tIterate.
    Puis dans les tFileInputDelimited, tu utilises la variable du tFileList qui te fourni le chemin du fichier à lire (((String)globalMap.get("tFileList_1_CURRENT_FILEPATH"))).
    Il faut également mettre à jour les composants de sortie pour les variabiliser selon ce que tu souhaites.

    Nicolas

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Etudiante en BI
    Inscrit en
    février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiante en BI
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2018
    Messages : 11
    Points : 7
    Points
    7

    Par défaut

    Merci je vais essayer!
    J'avais déjà essayé mais avec un lien onSubjobOk entre le tFileList et le tSetGlobalVar.

    Sylvie

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Etudiante en BI
    Inscrit en
    février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiante en BI
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2018
    Messages : 11
    Points : 7
    Points
    7

    Par défaut

    Je n'arrive pas au résultat attendu avec le tFileList, pouvez-vous me dire ce qui ne va pas dans mon job svp?
    Je vous envoi des captures :

    Nom : Capture.PNG
Affichages : 25
Taille : 43,5 Ko

    Je récupère les en-têtes comme avec un seul fichier, mon job s’exécute correctement mais je n'ai pas les bonnes données.
    Les données sont censés n'être que des dates et je reçoit ceci : Nom : Capture2.PNG
Affichages : 25
Taille : 12,6 Ko
    Les noms des champs sont bien les mêmes dans tous les fichiers.
    Comment faire?

    Merci!

  7. #7
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    février 2008
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : février 2008
    Messages : 813
    Points : 1 188
    Points
    1 188

    Par défaut

    Je pense qu'il ne faut utiliser qu'un seul tFileList.
    (Avec ce que tu as fait, tu écrases pour chaque fichier les entêtes que tu as trouvées pour le précédent, et j'imagine que tous les fichiers n'ont pas les colonnes au même endroit)

    Donc 1 seul tFileList, et tu lies le 2ème sous-job avec un 2ème flux iterate depuis le meme tFileList.

    Nicolas

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Etudiante en BI
    Inscrit en
    février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiante en BI
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2018
    Messages : 11
    Points : 7
    Points
    7

    Par défaut

    Merci cela fonctionne correctement maintenant!
    Merci!

  9. #9
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    février 2008
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : février 2008
    Messages : 813
    Points : 1 188
    Points
    1 188

    Par défaut


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Fichier avec grand nombre de lignes et lenteur de traitement
    Par Aguire_ dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 09/05/2015, 09h10
  2. [2008R2] Importation d'un fichier csv avec un nombre de colonnes variable
    Par wonderboutin123 dans le forum MS SQL-Server
    Réponses: 6
    Dernier message: 10/03/2015, 12h47
  3. Réponses: 6
    Dernier message: 21/12/2012, 00h14
  4. Récupération d'une base à partir des fichiers dbf
    Par Skirlou dans le forum Administration
    Réponses: 2
    Dernier message: 26/11/2012, 17h12
  5. Réponses: 4
    Dernier message: 19/03/2010, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo