Ниже приводится репликация функции Rank с помощью обычного запроса.
Этот запрос будет выполняться независимо от базы данных. Требование заключается в ранжировании имени файла на основе даты в имени файла.
**Sample Records**:
`insert into ref values('840001','840001_2015_04_29');
insert into ref values('840002','840002_2015_04_29');
insert into ref values('840003','840003_2015_04_29');
insert into ref values('840004','840004_2015_04_29');
insert into ref values('840008','840008_2015_04_28');
insert into ref values('840009','840009_2015_05_02');
insert into ref values('850005','850010_2015_05_29');
insert into ref values('850005','850010_2015_05_23');
insert into ref values('850005','850010_2015_05_12');
insert into ref values('850005','850010_2015_05_17');
insert into ref values('850006','850010_2015_05_29');
insert into ref values('850006','850010_2015_05_23');
insert into ref values('850006','850010_2015_05_16');`
`**Table Structure**:
CREATE TABLE ref
(
ffid TEXT
,filename TEXT
);`
**Query**:
SELECT
S1.FFID
,S1.FILENAME
,(
SELECT COUNT(*) + 1
FROM
(SELECT DISTINCT FFID,FILENAME FROM REF) AS S2
WHERE S1.FFID=S2.FFID AND S1.FILENAME < S2.FILENAME
) AS RANK
FROM
(SELECT DISTINCT FFID,FILENAME FROM REF) AS S1
WHERE RANK=1
ORDER BY FFID ;
Привет Тарика, я могу сделать это в улье, но мы должны сделать то же самое в Mapreduce.I значит, нам нужно преобразовать hive query в mapreduce, чтобы показать клиенту как улей, так и производительность mapreduce. – pras