2016-07-06 24 views
0

Ich versuche, eine Datei zu verarbeiten. ab sofort bekomme ich die Ausgabe wie unten gezeigt.Wie zwei Linien in Schwein basierend auf dem angegebenen Format zu kombinieren?

input file:- 
c=1,2,3 
a,b,c,d,a 
d,e,f 
g,h,i,i 
c=2,3,4 
j,k,l 
m,n,a,h 
c=3,2,5 
d,g,a 
s,fs,a 


    expecting an output like:- 
    c=1,2,3,a,b,c,d,a 
    c=1,2,3,d,e,f 
    c=1,2,3,g,h,i,i 
    c=2,3,4,j,k,l 
    c=2,3,4,m,n,a,h 
    c=3,2,5,d,g,a 
    c=3,2,5,s,fs,a 

gibt es eine andere Möglichkeit, wie wir die Ausgabe so bekommen können.

Another output format:- 
    c=1,2,3,{(a,b,c,d,a),(d,e,f),(g,h,i,i)} 
    c=2,3,4,{(j,k,l),(m,n,a,h)} 
    c=3,2,5,{(d,g,a),(s,fs,a)} 

Könnte mir jemand helfen. Ich versuche mit Schwein, aber bin nicht in der Nähe, ich versuche, dieses Problem mit Schwein zu lösen, um etwas Übung zu bekommen.

Dank & Grüße, Ankush Reddy

+0

Schreiben Sie Ihre eigene UDF. –

Antwort

0

Ich glaube nicht, es mit Schwein möglich ist. Pig ist eine parallele Verarbeitung und kann die Datensatzreihenfolge in der Datei nicht kennen. Also ich schlage vor, dass Sie es vor dem Prozess mit Schwein mit Bash-Skript oder anderem Werkzeug vorbearbeiten.

+0

Wenn die Datei zu groß ist, können wir das auch nicht mit dem Bash-Skript verarbeiten. Dies wird Stunden dauern. andere Vorschläge @Duc LT. Danke. –