2017-02-01 6 views
0

豚で3番目に高い給与を得る方法。豚で3番目に高い給与

私にこれを手伝ってください。

入力:

Sri 30000 
Abhi 15000 
SAS 15000 
mansa 18000 
asdf 5262 
dnaj 20000 
harda 20000 
+0

あなたの望ましい結果は何ですか?重複していると言っても、あなたはそれらをどのように扱いたいのか説明していません。 – Andrew

答えて

0

あなたは、この使用してランクを達成し、個別の給与relation.I'll使用LIMITで第三位のレコードを取得することができます。

A = LOAD 'data.txt' USING PigStorage('\t') AS (name:chararray,salary:int); 
B = FOREACH A GENERATE A.Salary; 
C = DISTINCT B; 
D = ORDER C BY C.$0 DESC; 
E = LIMIT D 3; 
F = ORDER E BY E.$0 ASC; 
G = LIMIT F 1; 
H = FILTER A BY (A.Salary = G.$0); 

Sri 30000 
Abhi 15000 
SAS 15000 
mansa 18000 
asdf 5262 
dnaj 20000 
harda 20000 

B

30000 
15000 
15000 
18000 
5262 
20000 
20000 

C

30000 
15000 
18000 
5262 
20000 

D

30000 
20000 
18000 
15000 
5262 

E

30000 
20000 
18000 

F

18000 
20000 
30000 

G

18000 

H

mansa 18000 
関連する問題