[英]How to write the following Query in HIVE
我在HIVE中實現了以下查詢:
SELECT title, rating FROM
(
SELECT m.title as title, variance(r.rating) as var, r.rating as rating, r.time_stamp as time_stamp
FROM movies m JOIN ratings r ON m.movieid = r.movieid
DISTRIBUTE BY m.title, r.rating
GROUP BY m.title
SORT BY m.title, r.rating
) A
WHERE year(from_unixtime(time_stamp)) = '2015'
GROUP BY title
LIMIT 10;
但是我收到以下錯誤:
Error while compiling statement: FAILED: ParseException line 6:4 missing ) at 'GROUP' near 'GROUP' line 6:10 missing EOF at 'BY' near 'GROUP'
我想這就是你想要的:
SELECT m.movieid, m.title, variance(r.rating) as var
FROM movies m JOIN
ratings r
ON m.movieid = r.movieid
WHERE year(from_unixtime(time_stamp)) = 2015
GROUP BY m.movieid, m.title
ORDER BY var DESC
LIMIT 10;
帕特里克,它仍然是SQL。
- 您無法選擇不屬於GROUP BY的列。
- YEAR
返回一個整數(Ps評級未分區?)。
- 你應該有一個很好的理由使用來自Hive開始時間的技術條款DISTRIBUTE BY
和SORT BY
。
select m.title
,r.var
from (select r.movieid
,variance(r.rating) as var
from ratings as r
where year(from_unixtime(time_stamp)) = 2015
group by r.movieid
order by var desc
limit 10
) as r
join movies as m
on m.movieid =
r.movieid
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.