Pig的第3个最高薪水

时间:2017-02-01 02:47:16

标签: hadoop apache-pig

即使包含重复项,如何获得猪的第三高薪。

请帮我解决这个问题。

输入:

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

1 个答案:

答案 0 :(得分:0)

你可以使用RANK实现这一目标,并获得不同薪资关系中的第3名记录。我将使用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);

<强> A

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

<强>乙

30000
15000
15000
18000
5262
20000
20000

<强> C

30000
15000
18000
5262
20000

<强> d

30000
20000
18000
15000
5262

<强>电子

30000
20000
18000

<强>˚F

18000
20000
30000

<强“G

18000

<强>ħ

mansa 18000