对于类项目,我必须将数据集导入oracledb和hadoop集群,并使用hiveql将其与sql进行比较。
我必须对数据运行查询并估计运行时间,以便比较性能。
数据表:其中一个表叫做ratings,它有movie\u id、user\u id和rating字段,这些字段将用户对大约500部电影的评分制成表格。
movie\u id和user\u id是数字字段,rating是浮点型字段。
我正在尝试运行以下sql查询:
SELECT MOVIE_ID, AVG(RATING) FROM RATINGS GROUP BY MOVIE_ID HAVING AVG(RATING) > 3.5
在oracle上查询返回153行,而在hive上查询hiveql返回139行。
当我跑步时:
SELECT MOVIE_ID, AVG(RATING) FROM RATINGS GROUP BY MOVIE_ID
两个平台返回相同数量的行。在两个平台上导入相同的数据。
根据我在互联网上的搜索,我尝试过这种变化:
SELECT AV.MOVIE_ID, AV.AVRT FROM (SELECT MOVIE_ID, AVG(RATING) AVRT FROM RATINGS GROUP BY MOVIE_ID HAVING AVG(RATING) > 3.5) AV;
我最终得到了同样的结果。
在hiveql中使用having子句有什么限制吗?在聚合方面,hiveql与传统rdbms有何不同?
任何帮助都将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!