蜂巢查询找出评分超过 2 的电影的平均评分
Hive Query to find out the average rating of movies having rating more than 2
我有一个名为 movierating
的 table,由以下字段组成:
| ColumnNO. | Name | DataType |
| Column1 | id | int |
| Column2 | movieid | int |
| Column3 | rating | int |
| Column4 | time | string |
我什至使用 SQL 查询为上述描述创建了 table 并成功加载了数据。现在我应该写一个 Hive 查询来找出评分超过 2 的电影的平均评分,将平均值四舍五入到小数点后两位并将输出保存在 output.txt.在 Bash 终端中,我输入了如下 Hive 命令(在收到 @SKM 的帮助后):
hive -e "select movieid, round(avg(rating), 2) from movierating group by movieid having avg(rating) > 2;" > output.txt
我什至提到过 here 类似的情况,但对我帮助不大。
请看一下我运行查询后的截图:
当我 运行 命令以 vim output.txt
打开 output.txt 文件时,我只得到一个没有数据的空白文件。我无法理解终端中描述的内容(如屏幕截图所示)。
查询 table 创建:
create table if not exists movierating (id int, movieid int, rating int, time string);
load data local inpath '/tmp/Movie-rating.txt' overwrite into table movierating;
这是我参加挑战赛的第一步。由于我是hive的新手,对它的工作不是很熟悉。
挑战描述:
其中第 1 步是使用上述字段创建 table。
请在这方面帮助我。
基于评论
在 运行 发送由 @SKM 发送的查询后的输出:
您可以像下面这样更改您的查询:
hive -e "select movieid, round(avg(rating), 2) from movierating group by movieid having avg(rating) > 2;" > output.txt
快照:
我有一个名为 movierating
的 table,由以下字段组成:
| ColumnNO. | Name | DataType |
| Column1 | id | int |
| Column2 | movieid | int |
| Column3 | rating | int |
| Column4 | time | string |
我什至使用 SQL 查询为上述描述创建了 table 并成功加载了数据。现在我应该写一个 Hive 查询来找出评分超过 2 的电影的平均评分,将平均值四舍五入到小数点后两位并将输出保存在 output.txt.在 Bash 终端中,我输入了如下 Hive 命令(在收到 @SKM 的帮助后):
hive -e "select movieid, round(avg(rating), 2) from movierating group by movieid having avg(rating) > 2;" > output.txt
我什至提到过 here 类似的情况,但对我帮助不大。
请看一下我运行查询后的截图:
当我 运行 命令以 vim output.txt
打开 output.txt 文件时,我只得到一个没有数据的空白文件。我无法理解终端中描述的内容(如屏幕截图所示)。
查询 table 创建:
create table if not exists movierating (id int, movieid int, rating int, time string);
load data local inpath '/tmp/Movie-rating.txt' overwrite into table movierating;
这是我参加挑战赛的第一步。由于我是hive的新手,对它的工作不是很熟悉。
挑战描述:
其中第 1 步是使用上述字段创建 table。
请在这方面帮助我。
基于评论
在 运行 发送由 @SKM 发送的查询后的输出:
您可以像下面这样更改您的查询:
hive -e "select movieid, round(avg(rating), 2) from movierating group by movieid having avg(rating) > 2;" > output.txt
快照: