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 :

Médiane d'une colonne csv


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Médiane d'une colonne csv
    Bonjour,

    Il existe le composant "tAggregateRow" qui nous permet d'obtenir la moyenne, la somme ... d'un flux.
    Ce que j'aimerai obtenir c'est la médiane. Hors le composant ne le propose pas et je vois vraiment pas comment le déployer sous talend.

    Le code en Java je l'ai bien dans ma tête mais je vois pas comment faire sous Talend.

    Voilà actuellement ce que j'ai :

    Fichier.csv --> FilterRow --> tSortRow--> tAggregate--> Fichier2.csv

    Le filterRow me permet de faire un filtre sur mon flux.
    Le tSortRow me permet de trier la colonne "nbre_ordinateur".
    Le tAggregate me permet de récupérer le 1er et le dernier.
    Il me manque juste la médiane de la colonne "nbre_ordinateur".

    Merci pour votre lecture et votre aide

  2. #2
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Pour ce genre de problème l'idéal c'est de passer par une routine.
    Pour la création de routine je te renvoi vers ce tuto :

    http://haskouse.developpez.com/tutor...ation-routine/
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Effectivement les routines pourraient être une bonne solution, mais ma médiane se calcule sur l'ensemble de mes lignes de mon flux et non ligne par ligne.

    Mon flux ressemble à ça par exemple :
    3
    4
    8
    9
    12
    14
    15

    Chaque nombre représente une ligne, et donc ma médiane serait "9".
    Sur l'exemple des routines, c'est juste une conversion de format donc le traitement ligne par ligne fonctionne. Moi j'ai besoin de travailler sur l'ensemble du flux.

  4. #4
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Ce que tu pourrais faire c'est de créer une variable globale de type table d'entier int[]. Tu ajouteras dans ta table les lignes une par une par exemple dans un tJavaRow.

    Ensuite tu créeras une routine prenant comme argument une tableau de int.
    Tu pourras faire appel à cette routine dans un tMap, tJava, tJavaRow ...
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    L'idée me semble bonne.
    Le seul hic, c'est comment initialiser mon tableau car le nombre de ligne change constamment ?

    Je trouve ça très lourd quand même. Il y a pas un moyen de récupérer directement toute la colonne dans un tableau ?

  6. #6
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    L'idée me semble bonne.
    Le seul hic, c'est comment initialiser mon tableau car le nombre de ligne change constamment ?
    Pour ça ce n'est difficile, tu peux utiliser une strucutre dynamique comme un ArrayList, tu n'as pas besoin de spécifier la longueur au moment de la création, et au moment de l'ajout al taille de ta liste augmentera dynamiquement.

    Je trouve ça très lourd quand même. Il y a pas un moyen de récupérer directement toute la colonne dans un tableau ?
    Je ne sais pas.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    J'ai réussi à me débrouiller avec la méthode donnée par Haskouse.

    Je ne sais pas si je mets cette discussion dans l'état "Résolu" car je trouve que la solution est légèrement sale et j'espère qu'il y a d'autres solutions que celle-là. Enfin pour le moment elle me convient, mais je pense qu'un petit composant permettant d'obtenir la médiane directement serait plus propre.

    Merci de ton aide Haskouse.

    Bonne journée

  8. #8
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2011
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2011
    Messages : 201
    Points : 352
    Points
    352
    Par défaut
    Bonjour,

    Il est intéressant de monter les demandes d'évolutions sur le bugtracker :
    http://jira.talendforge.org

    En faisant la recherche, celle-ci existe (créée en juin 2010). J'ai relancé:
    http://jira.talendforge.org/browse/TDI-6736

    Bonne journée,

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Je ne connaissais pas du tout!
    Merci d'avoir poster un message pour moi.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/04/2009, 15h00
  2. [PowerShell] [PowerShell]Utiliser une colonne d'un fichier csv
    Par Léponge85 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 26/02/2009, 11h54
  3. remplir une colonne d'un csv
    Par dferot dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 17/02/2009, 12h30
  4. Ajouter une colonne à un fichier csv contenant les resultats d'un calcul
    Par Freedd dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 31/07/2008, 12h01

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