IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Creation d'un job pour classifier des données


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Creation d'un job pour classifier des données
    Bon, j'ai cherché un peu partout, et je suis encore débutant sous Talend..je n'ai pas réussi à résoudre ce problème.

    Données:
    J'ai un flux de données (traitement d'un fichier Excel par Tmap) qui me sort des données au format suivant:

    Référence Date_ouverture Date_cloture Description
    A22 10/10/2014 10/10/2014 ouverture impossible
    A22 10/10/2014 11/10/2014 demande d'accès
    A22 12/10/2014 13/10/2014 réinitialisation impossible
    A22 15/10/2014 15/10/2014 régénération en cours

    J'ai en parallèle un fichier Excel avec les données suivantes qui me permettent de classer les donner

    Type Sous_type Chaine
    Accès Impossible ouverture
    Accès accès demande
    Réinitialisation Impossible réinit

    Et je veux croiser les données de mon flux pour les classer, en recherchant dans la description la chaine de la seconde table, et si trouvée, lui associer le type et sous type pour obtenir la donnée suivante:

    Référence Date_ouverture Date_cloture Description Type Sous_type
    A22 10/10/2014 10/10/2014 ouverture impossible Accès impossible
    A22 10/10/2014 11/10/2014 demande d'accès Accès accès
    A22 12/10/2014 13/10/2014 réinitialisation impossible Réinitialisation impossible
    A22 15/10/2014 15/10/2014 régénération en cours Divers divers

    Attention, si je ne trouve pas de chaine correspondante dans le deuxième fichier, la ligne associé du flux doit etre classée en Divers/divers

    J'ai tenté un Tmap avec filtre sur le fichier de classification sur un stringHandling.INDEX(description, chaine)>0, mais le problème c'est que je perd les données qui ne matchent pas.
    J'ai donc voulu traiter en 2 fois, d'abords regarder les données qui ne matchent pas, puis celles qui matchent (dans 2 TMap différents), mais je n'arrive pas à concaténer les 2 résultats ensuite...Et ça me parrait un peu lourd au final.

    J'ai tenté de passer par une variable dans mon TMap, mais en fait pour chaque ligne de mon Flux il me génère x ligne (x etant le nombre de ligne dans mon fichier de classification) alors que je veux qu'il ne me retourne que s'il match une ligne, et que si pas ok, a la fin il classe en Divers/divers.

    Bref...je sèche...

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    J'ai fini par obtenir un résultat, pour ceux que ça intéresse je donne la démarche:

    il faut faire un premier tmap entre le fichier source (lien main) et le fichier qui donne la chaine de recherche et les classifications Type et sous type, en mettant ce dernier en tant que lien "lookup". Sur la table associée au lien lookup il faut rajouter un filtre avec la formule suivante:
    StringHandling.INDEX(main.description,lookup.chaine)>=0 (remplacer main par le nom du lien principale, lookup par le nom du lien "lookup", et description et chaine par les noms de colonnes associées).

    Le Tmap va donc vous retourner la liste à jour, mais sans les lignes ou il n'y a pas de correspondance. Il va donc falloir le recroiser dans un Tmap avec votre fichier de données initial pour retrouver les valeurs ou il n'y a pas correspondance. J'ai donc sauvé le résultat dans un buffer et créé un sous job que je lance à complétion du premier. Je repasse donc mon fichier initial de donné (en lien principale) avec les données en buffer de mon premier croisement, avec un left outer join sur la colonne référence. Je fais ensuite un Tmap sur le resultat poru remplacer tout les Type / Sous type laissé à vide par "DIVERS" / "divers".

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

Discussions similaires

  1. Creation d'un composant pour saisir des nombres
    Par Sylmandel dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 05/06/2006, 11h09
  2. Réponses: 3
    Dernier message: 05/05/2006, 12h41
  3. Réponses: 3
    Dernier message: 05/12/2005, 03h30
  4. [Persistance]Aide pour sauver des données en XML
    Par le Daoud dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/06/2005, 14h39
  5. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 18h44

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