2016-04-11 4 views

Antwort

2

Generieren Sie das zweite Feld aus dem zweiten Zeichen des ersten Felds und ordnen Sie dann nach dem zweiten Feld. Beziehen Sie schließlich nur das erste Feld aus der geordneten Beziehung.

A = LOAD 'test3.txt' USING PigStorage('\t') as (a1:chararray); 
B = FOREACH A GENERATE a1,SUBSTRING(a1,1,2) as a2; 
C = ORDER B BY a2; 
D = FOREACH C GENERATE a1; 
DUMP D; 

Ausgabe

Output

+0

Ich war ungefähr das gleiche zu beantworten ... Sie machte es zuerst ... Sie den Unterschied sehen können ... :) –

+0

du verdienst die stimme ... ich suchte nach der größe der string ... dh länge funktion ... ich dachte ich muss die UDF schreiben oder Was und ich habe diese ..SIZE-Funktion ... :) –

+0

Keine Sorge, ich lerne auch :) Sie möchten vielleicht Ihre Antwort für den Zugriff auf das erste Feld mit $ 0 bearbeiten. –

0

Meine Daten

1,The Nightmare Before Christmas 
2,The Mummy 
3,Orphans of the Storm 
4,The Object of Beauty 

    A = LOAD '/home/abhijit/Downloads/movies.txt' USING PigStorage(',') as (a1:int,a2:chararray); 
    B = FOREACH A GENERATE a2,SUBSTRING(a2,1,2) as a3; 
    C = ORDER B BY a3; 
    D = FOREACH C GENERATE a2; 
    DUMP D; 
+0

Ok. Ich habe meine eigenen Daten hier ... Ich werde es einfügen ... so wird es keine Verwirrung geben ... –

+0

@inquisitive_mind: Ist das richtig ... Oder braucht es eine Änderung ... Ich kann es nicht testen :( –

Verwandte Themen