2017-02-01 3 views
0

Как получить 3-е место в свиней, даже если оно содержит дубликаты.3-я высшая зарплата в свинге

Пожалуйста, помогите мне в этом.

Вход:

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

Что вы желаемый результат? Вы говорите даже с дубликатами, но вы не объясняете, как вы хотите с ними справиться. – Andrew

ответ

0

Вы можете добиться этого с помощью RANK и получить 3-й ранжированный запись в отчетливой зарплаты использования 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 

Б

30000 
15000 
15000 
18000 
5262 
20000 
20000 

С

30000 
15000 
18000 
5262 
20000 

D

30000 
20000 
18000 
15000 
5262 

Е

30000 
20000 
18000 

F

18000 
20000 
30000 

G

18000 

H

mansa 18000 

 Смежные вопросы

  • Нет связанных вопросов^_^