mapreduce에서 SQL 순위 함수를 복제해야하는 상황이 있습니다. 다음과 유사합니다. QUALIFY Row_number() (a.column2 desc, d.column3 desc로 a.column1 순서로 파티션) = 1mapreduce에서 SQL의 순위 함수를 구현하는 방법은 무엇입니까?
감사합니다.
mapreduce에서 SQL 순위 함수를 복제해야하는 상황이 있습니다. 다음과 유사합니다. QUALIFY Row_number() (a.column2 desc, d.column3 desc로 a.column1 순서로 파티션) = 1mapreduce에서 SQL의 순위 함수를 구현하는 방법은 무엇입니까?
감사합니다.
그것은이 유사합니다 (a.column2 내림차순으로 a.column1 순서에 의해 분할, d.column3 내림차순) = 1
미안 해요를 통해 ROW_NUMBER()를 자격이 I 이것을 얻지 못했습니다. 하이브 또는 MR을 통해이 목표를 달성하려고합니까? 귀하의 질문에 MR이 필요하지만이 쿼리가 표시되었습니다. 둘 다 완전히 다릅니다.
하이브를 통해이를 실현하려는 경우이 post이 유용 할 수 있습니다. 그리고이 MR 방식을 원한다면 처음부터 코드를 작성해야합니다. 아래
HTH
는 일반 쿼리를 사용하여 순위 함수의 복제입니다.
이 쿼리는 데이터베이스와 관계없이 실행됩니다. 요구 사항은 파일 이름의 날짜를 기반으로 파일 이름의 순위를 매기는 것입니다.
**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 ;
순위가 implimented된다
rank() over (partition by a.column1 order by a.column2 desc, d.column3 desc)
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics
안녕 타리크, 나는 하이브에서 할 수 있지만, 우리가 Mapreduce.I에서 동일한 작업을 수행 의미합니다, 우리는 변환 할 필요 hive와 mapreduce 성능을 클라이언트에게 보여주기 위해 mapreduce에 하이브 쿼리를 추가합니다. – pras