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

Big Data Discussion :

Aide fonction Hadoop Hive


Sujet :

Big Data

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 23
    Points : 27
    Points
    27
    Par défaut Aide fonction Hadoop Hive
    Bonjour à tous,

    cela fait très peu de temps que je travaille sur Hive et je rencontre un problème.
    Je n'ai jamais fais de fonction sur Hive et pourtant j'en aurais bien besoin.

    Voici le schéma de ma table table_test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
               useridglobal
               datevisite
               targetvalue
               hostname
               TimeID
               ordre
               position
               relevant
               SiteID
    J'aimerais faire en sorte que si mon ordre=1 alors position=first
    si mon ordre>1 mais différent du max de l'ordre pour mon useridglobal alors position=after
    si mon ordre=max(ordre) pour mon useridglobal alors position=last

    En effet parfois je possède un même useridglobal avec un ordre allant de 1 à n. Le but est donc que pour chaque useridglobal j'ai ma position.

    Voici ce que j'ai commencé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select useridglobal, ordre,
     if(locate(1,ordre)>0
     ,'first'
     ,'autres') as position
     from table_test
    Ca fonctionne et me donne bien ce que je mets dans la fonction.
    Néanmoins, je vois pas comment insérer le reste de mes conditions ...

    Merci d'avance

  2. #2
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Je ne connais pas spécialement Hive (pas encore du moins car je vais bientot être amené à bosser avec, c'est pour ca que je suis le forum)
    mais ton problème d'un point de vu prog ne me semble pas super compliqué.

    est ce que la solution ne serait pas tout simplement de faire un truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select useridglobal, ordre,
     if(locate(1,ordre)>0
     ,'first'
     ,if(condition2, 'after','last')) as position
     from table_test
    Je ne sais pas si ca marche, mais pour imbriquer des if quand on a pas de structure elif, c'est ce qu'on fait en général.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 23
    Points : 27
    Points
    27
    Par défaut
    Salut

    Ca marche pas parce que ça doit suivre cette architecture :
    dans laquelle tu as "1" qui est la valeur, "ordre" qui est la colonne et ">0" la condition.
    Or tu me proposes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(condition2, 'after','last')
    J'ai trouvé pour avoir l'ordre suivant le premier (>1)
    Mais pour avoir le dernier pour chaque useridglobal je n'ai toujours pas trouvé...

    Si je viens à trouver je reviens poster la solution ça peut aider d'autres

    En conclusion, à ce que j'ai compris lorsque l'on a dans une fonction if sur Hive ">" ça veut dire "égal" et lorsque l'on a "=" ça veut dire "supérieur ou différent".. je ne sais pas :/

Discussions similaires

  1. aide fonction tri heapsort (création du tas)
    Par Invité dans le forum C
    Réponses: 6
    Dernier message: 24/11/2009, 00h27
  2. [aide fonction popup.close() ]
    Par viny dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/07/2006, 16h41
  3. Aide fonction getopt
    Par makohsarah dans le forum C
    Réponses: 12
    Dernier message: 12/06/2006, 16h02
  4. aide fonction math[racine,cos(),sin(),..]VB6
    Par am.adnane dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/12/2005, 18h40
  5. besoin d'aide fonction avec fichier (debutant)
    Par boby61 dans le forum Débuter
    Réponses: 9
    Dernier message: 14/03/2005, 11h22

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