簡體   English   中英

如何在HIVE中編寫以下查詢

[英]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 BYSORT 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM