豚のスクリプトの助けが必要です。2 つの csv ファイルがあり、それらを共通の ID で結合したいと考えています。
customer.csv :
1 ; nom1 ; prenom1
2 ; nom2 ; prenom2
3 ; nom3 ; prenom3
child.csv
1 ; enfant_1_1
2 ; enfant_1_2
3 ; enfant_1_3
1 ; enfant_2_1
1 ; enfant_3_1
したがって、1 人の顧客は多くの子を持つことができますが、子は 1 つの「顧客」しか持つことができません。
このファイルを作成したい:
1 ; nom1 ; prenom1 ; enfant_1_1 ; enfant_2_1 ; enfant_3_1
2 ; nom2 ; prenom2 ; enfant_1_2
3 ; nom3 ; prenom3 ; enfant_1_3
これは私の方法です:
最初に私は持っていることを試みます:
1 ; enfant_1_1 ; enfant_2_1 ; enfant_3_1
2 ; enfant_1_2
3 ; enfant_1_3
そして、custome.csv との結合を行った後
最も簡単な方法があると思うことを教えてください:)
これは私のスクリプトです:
donnees_Enfants = LOAD '/user/cloudera/Jeux/mini_jeu2.csv' USING PigStorage(';')
AS (id_parent:int,nom_enfant:chararray);
group_enfants = GROUP donnees_Enfants BY id_parent;
enfant_uneLigne = foreach group_enfants generate group, donnees_Enfants.nom_enfant;
grunt> echantillon = LIMIT enfant_uneLigne 50;
grunt> DUMP echantillon;
DESCRIBE の場合: group_enfants: {group: int,donnees_Enfants: {(id_parent: int,nom_enfant: chararray)}} enfant_uneLigne: {group: int,{(nom_enfant: chararray)}}
結果 :
(1,{( enfant_2_1 ),( enfant_1_1 ),( enfant_3_1 )})
(2,{( enfant_2_2 )})
(3,{( enfant_2_3 )})
「enfant_1_2」を平坦化しようとしました...しかし、その結果、子ごとに1つのリグが発生しました...タプルとバッグをいじるのが難しいのですが、助けてもらえますか?
前もって感謝します、
編集:私は私の問題などの解決策を見つけました^^以下を参照してください
アンゲリック