Von diesem:
%Vor%... Wie können wir das erzeugen?
%Vor%... Und wie könnten wir das erzeugen?
%Vor%Für eine einzelne Zeile weiß ich wie es geht. Das Problem ist, wenn ich über viele Zeilen Iterieren und gleichzeitig interne Gruppen manipulieren muss.
Für Ihre Frage habe ich die folgende Datei vorbereitet:
%Vor% Zuerst habe ich das folgende Skript verwendet, um die Eingabe r3
zu erhalten, die Sie in Ihrer Frage beschrieben haben:
Wenn wir den folgenden Inhalt generieren möchten,
%Vor%können wir das folgende Skript verwenden:
%Vor%Für den folgenden Inhalt
%Vor%Ich kann keine hilfreiche eingebaute Funktion finden. Vielleicht müssen Sie Ihr benutzerdefiniertes BagToTuple schreiben. Hier sind die eingebauten BagToTuple-Quellcodes: Ссылка
Es gibt keinen eingebauten Weg, um einen Beutel in ein Tupel zu verwandeln. Dies liegt daran, dass Taschen nicht geordnete Mengen von Tupeln sind, so dass Pig nicht weiß, auf welche Reihenfolge die Tupel eingestellt werden sollen, wenn es in ein Tupel umgewandelt wird. Dies bedeutet, dass Sie hierfür eine UDF schreiben müssen.
Ich bin mir nicht sicher, wie Sie das (1, 2, 3, 4)
Tupel erstellen, aber dies ist ein weiterer guter Kandidat für eine UDF, obwohl Sie dieses Schema nur mit der BagToTuple UDF erstellen könnten.
HINWEIS: Sie sollten wahrscheinlich nichts zu einem Tupel machen, solange Sie nicht genau wissen, wie viele Felder es gibt.
myudfs.py
%Vor%meinskript.pig
%Vor%Tags und Links hadoop apache-pig