如何在配置单元中编写以下查询

m1m5dgzv  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(359)

我在配置单元中实现了以下查询:

  1. SELECT title, rating FROM
  2. (
  3. SELECT m.title as title, variance(r.rating) as var, r.rating as rating, r.time_stamp as time_stamp
  4. FROM movies m JOIN ratings r ON m.movieid = r.movieid
  5. DISTRIBUTE BY m.title, r.rating
  6. GROUP BY m.title
  7. SORT BY m.title, r.rating
  8. ) A
  9. WHERE year(from_unixtime(time_stamp)) = '2015'
  10. GROUP BY title
  11. LIMIT 10;

但我得到以下错误:

  1. Error while compiling statement: FAILED: ParseException line 6:4 missing ) at 'GROUP' near 'GROUP' line 6:10 missing EOF at 'BY' near 'GROUP'
vdzxcuhz

vdzxcuhz1#

帕特里克,还是sql。
-不能选择不属于分组依据的列。

  • YEAR 返回整数(p.s.评级未分区?)。
    -你应该有充分的理由 DISTRIBUTE BY 以及 SORT BY ,从Hive的乞讨时间起的技术条款。
  1. select m.title
  2. ,r.var
  3. from (select r.movieid
  4. ,variance(r.rating) as var
  5. from ratings as r
  6. where year(from_unixtime(time_stamp)) = 2015
  7. group by r.movieid
  8. order by var desc
  9. limit 10
  10. ) as r
  11. join movies as m
  12. on m.movieid =
  13. r.movieid
  14. ;
展开查看全部
flseospp

flseospp2#

我想这就是你想要的:

  1. SELECT m.movieid, m.title, variance(r.rating) as var
  2. FROM movies m JOIN
  3. ratings r
  4. ON m.movieid = r.movieid
  5. WHERE year(from_unixtime(time_stamp)) = 2015
  6. GROUP BY m.movieid, m.title
  7. ORDER BY var DESC
  8. LIMIT 10;

相关问题