【发布时间】:2015-02-02 15:23:03
【问题描述】:
我无法通过 Hive 中的有效查询找到实现以下功能的方法。意图是根据加权平均获得一年内上映的评分最高的电影。
更清楚地说,这是我应该能够在单个查询中在 hive 中执行的操作。
var allMoviesRated = select count(movieid) where year(from_unixtime(unixtime)) = 1997;
选择movieid、avg(rating)、count(movieid)、avg(rating)/allMoviesRated 作为加权 (select movieid, rating, year(from_unixtime(unixtime)) as year from u_data where u_data_new.year = 1997) u_data_new group by movieid order by weighted desc limit 10;
【问题讨论】:
-
我已经使用 join 完成了。可能是一项昂贵的操作,但它确实有效。
标签: hiveql