配置单元查询以找出分级超过2的电影的平均分级

x3naxklr  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(367)

我有一张table叫 movierating 由以下字段组成:

  1. | ColumnNO. | Name | DataType |
  2. | Column1 | id | int |
  3. | Column2 | movieid | int |
  4. | Column3 | rating | int |
  5. | Column4 | time | string |

我甚至使用sql query为上述描述创建了表,并成功地将数据加载到表中。现在,我应该编写一个配置单元查询来找出分级超过2的电影的平均分级,将平均值四舍五入到小数点后两位,并将输出保存在output.txt中。在bash终端中,我键入了如下hive命令(在收到@skm的帮助后):

  1. hive -e "select movieid, round(avg(rating), 2) from movierating group by movieid having avg(rating) > 2;" > output.txt

我甚至在这里提到过类似的情况,但对我帮助不大。
请看一下我运行查询后的屏幕截图:


当我运行命令打开output.txt文件时 vim output.txt ,我只得到一个没有数据的空白文件。我无法理解终端中描述的内容(如屏幕截图所示)。
表创建查询:

  1. create table if not exists movierating (id int, movieid int, rating int, time string);
  2. load data local inpath '/tmp/Movie-rating.txt' overwrite into table movierating;

这是我参加挑战的第一步。由于我对Hive还不熟悉,我对它的工作原理不太熟悉。
挑战描述:

其中步骤1是用上述字段创建表。
请在这方面帮助我。
基于评论
运行@skm发送的查询后的输出:

agyaoht7

agyaoht71#

您可以按以下方式更改查询:

  1. hive -e "select movieid, round(avg(rating), 2) from movierating group by movieid having avg(rating) > 2;" > output.txt

快照:

相关问题