Agréger les relations - 6.4

Pig

author
Talend Documentation Team
EnrichVersion
6.4
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Open Studio for Big Data
Talend Real-Time Big Data Platform
task
Création et développement > Systèmes tiers > Composants Processing (Intégration) > Composants Pig
Gouvernance de données > Systèmes tiers > Composants Processing (Intégration) > Composants Pig
Qualité et préparation de données > Systèmes tiers > Composants Processing (Intégration) > Composants Pig
EnrichPlatform
Studio Talend

Procédure

  1. Double-cliquez sur le tPigCoGroup pour ouvrir sa vue Component.
  2. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur de schéma.
  3. Cliquez cinq fois sur le bouton [+] pour ajouter cinq lignes et, dans la colonne Column, renommez-les owner_friend, age, pet_number, pet et student, respectivement.
  4. Dans la colonne Type de la ligne age, sélectionnez Integer.
  5. Cliquez sur OK pour valider ces modifications et acceptez la propagation par la boîte de dialogue qui s'ouvre.
  6. Dans la table Group by, cliquez sur le bouton [+] pour ajouter une ligne.
  7. Vous devez paramétrer les conditions de groupe dans la table Group by table pour agréger les deux relations d'entrée. Dans chaque colonne représentant la relation d'entrée, cliquez sur la nouvelle ligne et sélectionnez la colonne à utiliser pour composer la condition de groupe. Dans ce scénario, la colonne owner de la relation maître-animal et la colonne friend de la relation étudiant-ami sont sélectionnées car elles ont des enregistrements en commun. A partir de ces colonnes, les deux relations sont agrégées dans des bags (entre accolades).
    Les bags concernant l'enregistrement Alice se présentent comme suit :
    Alice,{(Alice,turtle,17),(Alice,goldfish,17),(Alice,cat,17)},{(Cindy,Alice),(Mark,Alice)}
  8. Dans la table Output mapping, le schéma de sortie défini précédemment a automatiquement renseigné la colonne Column. Vous devez renseigner cette table afin de définir comment les bags groupés sont agrégés dans le schéma de la relation de sortie. La liste suivante fournit plus de détails concernant la configuration de cette agrégation dans ce scénario :

    Colonne

    Description

    owner_friend

    Reçoit les enregistrements provenant des colonnes utilisées comme condition de groupe.

    Pour cette raison, sélectionnez la fonction EMPTY dans la liste déroulante Function, pour que les enregistrements entrants restent tels qu'ils sont. Sélectionnez row1 dans la liste Source schema et owner dans la liste Expression pour lire les enregistrements de la colonne d'entrée correspondante. Vous pouvez également sélectionner row2 et friend, les enregistrements à recevoir sont les mêmes car les colonnes owner et friend sont jointes lorsqu'elles sont utilisées comme condition de groupe.

    Notez que le libellé row1 est l'ID du lien d'entrée et peut être différent dans votre scénario.

    age

    Reçoit les données d'âge.

    Comme dans les bags dans l'étape précédente, l'âge d'un propriétaire apparaît de manière répétée dans l'un des bags après regroupement. Vous pouvez sélectionner la fonction AVG dans la liste Function pour calculer la moyenne des valeurs répétitives, comme l'âge qui apparaît une seule fois dans le résultat final. Sélectionnez row1 dans la liste Source schema et age dans la liste Expression.

    pet_number

    Reçoit le nombre d'animaux d'une personne.

    Sélectionnez la fonction COUNT dans la liste Function pour effectuer le calcul. Sélectionnez row1 dans la liste Source schema et pet dans la liste Expression.

    pet et student

    Reçoivent les enregistrements groupés des colonnes d'entrée pet et student, respectivement.

    Sélectionnez EMPTY pour les deux colonnes et, dans la liste Source schema de chacune, sélectionnez le schéma d'entrée correspondant. Dans la liste Expression, sélectionnez la colonne correspondante.