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

Python Discussion :

Spliter la collone d'une table hive en plusieurs colonne en python


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Spliter la collone d'une table hive en plusieurs colonne en python
    Bonjour,

    Je souhaiterai spliter la colonne d'une table hive en plusieurs colonnes en fonction d'une regex.
    Je débute en python, j'aimerai savoir quel objet python est le plus adapté pour avoir de bonnes performance car la table en question a quelques dizainne de milliard de lignes (list, dictionaire, dataframe, autre...)

    Merci d'avance
    F69

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par Frite69 Voir le message
    Je souhaiterai spliter la colonne d'une table hive en plusieurs colonnes en fonction d'une regex.
    dans quel sens ? tu peux donner un exemple de table et le résultat attendu ?


    Citation Envoyé par Frite69 Voir le message
    j'aimerai savoir quel objet python est le plus adapté pour avoir de bonnes performance car la table en question a quelques dizainne de milliard de lignes (list, dictionaire, dataframe, autre...)
    à mon avis il va au minimum falloir travailler avec des dataframes Pandas si on parle de "quelques milliards" d'enregistrements

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse.

    J'ai exactement 27194019081 records (27 milliards)

    J'ai une colonne comme ceci :
    /G1=DUPOND/G2=MARTIN/G3=197345785/G4=9999/
    et je voudrai que G1 G2 G3 et G4 deviennent des colonnes

    Je pensais utiliser un DF spark, c'est différent de Pandas ?

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par Frite69 Voir le message
    J'ai exactement 27194019081 records (27 milliards)
    pas mal


    Citation Envoyé par Frite69 Voir le message
    J'ai une colonne comme ceci :
    /G1=DUPOND/G2=MARTIN/G3=197345785/G4=9999/
    et je voudrai que G1 G2 G3 et G4 deviennent des colonnes
    si on part du principe que les enregistrements ont un formatage fixe, à savoir qu'on a toujours G1 puis G2, G3 et G4, sans partie manquante et avec des noms G* qui sont toujours les mêmes, avec Pandas on pourrait faire quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import pandas as pd
     
    df = pd.DataFrame([
        '/G1=DUPOND/G2=MARTIN/G3=197345785/G4=9999/',
        '/G1=MOLDU/G2=GUSTAVE/G3=168753122/G4=1234/',
        '/G1=DUGENOU/G2=ROBERT/G3=189535476/G4=5678/',
    ], columns=['pouet'])
     
    df[['G1', 'G2', 'G3', 'G4']] = df['pouet'].str.slice(4,-1).str.split(r'/G\d=', expand=True)
    et le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                                             pouet       G1       G2         G3       G4
    0   /G1=DUPOND/G2=MARTIN/G3=197345785/G4=9999/   DUPOND   MARTIN  197345785     9999
    1   /G1=MOLDU/G2=GUSTAVE/G3=168753122/G4=1234/    MOLDU  GUSTAVE  168753122     1234
    2  /G1=DUGENOU/G2=ROBERT/G3=189535476/G4=5678/  DUGENOU   ROBERT  189535476     5678

    Citation Envoyé par Frite69 Voir le message
    Je pensais utiliser un DF spark, c'est différent de Pandas ?
    bonne question, j'imagine que les deux se recoupent au moins en partie, je verrais plus Spark comme un backend de stockage et de calcul distribué qu'on peut éventuellement coupler aux possibilités de traitements qu'offre Pandas, mais peut-être que je me trompe

    pour ce que j'en sais Spark est une grosse usine à gaz professionnelle prévue pour traiter du bigdata, donc avec tes 27 milliards d'enregistrements c'est probablement une bonne idée

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci BufferBob pour ces informations. Je vais faire quelques tests

Discussions similaires

  1. Ajouter à une view hive des nouvelles colonnes d'une autre table
    Par _junior_ dans le forum Général Python
    Réponses: 11
    Dernier message: 07/01/2020, 13h54
  2. Réponses: 14
    Dernier message: 22/09/2011, 16h11
  3. [Oracle] Contenu d'une table en entête de colonne
    Par Mimile28 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 01/08/2006, 15h55
  4. Réponses: 1
    Dernier message: 10/05/2006, 15h01
  5. Découper une table access en plusieurs table automatiquement
    Par monsieuryaya2 dans le forum Access
    Réponses: 2
    Dernier message: 29/11/2005, 12h37

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