我已经使用查询在 hive 中创建了一个表

CREATE TABLE u_data (
 userid INT,
 movieid INT,
 rating INT,
 unixtime STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;

然后向其中加载一些数据,现在我要检索具有30个以上评分的电影的平均评分。

我尝试使用查询创建 View :
create view ratingcount as select movieid, count(rating) as num_of_ratings from u_data group by movieid;

然后用join查询:
Select movieid, avg(rating) from u_data join ratingcount on u_data.movieid = ratingcount .movieid where num_of_ratings >30;

这是异常(exception)。请让我知道如何检索所需的数据?

最佳答案

试试这个,

Select movieid, avg(rating) from u_data group by movieid having count(rating) > 30;

关于hadoop - hive 查询-无法找到评级超过30的电影,平均评级是多少,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32346254/

10-09 03:24