hive登陆

Summer School实验二_hive

创建表

 

CREATE TABLE u_data(

  userid INT,

  movieid INT,

  rating INT,

  unixtime STRING)

ROW FORMATDELIMITED

FIELDS TERMINATEDBY '\t'

STORED AS TEXTFILE;

 

ROW FORMAT DELIMITED表示不限制每行的具体格式

FIELDS TERMINATED BY '\t'表示以制表符来分割字段

STOED AS TEXTFILE是使用文本文件的格式来存储数据

Summer School实验二_hive_02

Summer School实验二_hive_03


导入数据

 

wget

http://files.grouplens.org/datasets/movielens/ml-100k.zip


Summer School实验二_hadoop_04

Summer School实验二_hadoop_05


看看是否有这个文件了

Summer School实验二_hive_06

解压缩

Summer School实验二_hadoop_07

导入数据

Summer School实验二_hive_08


SELECT * FROM u_data LIMIT 10;

Summer School实验二_hadoop_09


SELECT COUNT(*)FROM u_data;

Summer School实验二_hive_10

Summer School实验二_hive_11


聚合查询

通过MOVIEID分组,然后写出各组的平均等级,这里使用的AVG函数是组内平均数

 

SELECT movieid,avg(rating) FROM u_datagroup by movieid;

Summer School实验二_hadoop_12

...

Summer School实验二_hadoop_13

统计

统计各电影投票次数

 

SELECT movieid,count(rating) FROM u_datagroup by movieid;

Summer School实验二_hive_14

...

Summer School实验二_hadoop_15

统计每天每部电影的投票数

CAST(A AS TYPEB)是把A转换成TYPEB类型

FROM_UNIXTIME是吧一个BIGINT转成日期格式,后边可以跟格式模板

 

SELECT movieid,count(rating),from_unixtime(cast(unixtime as bigint),'yyyy-MM-dd') FROM u_data group by movieid,from_unixtime(cast(unixtime as bigint),'yyyy-MM-dd');

 Summer School实验二_hadoop_16

以此类推,可以写出各种时间和电影的交叉统计,请试写按年中的周数来统计的各部电影的投票数、平均得分统计

提示:

日期转周函数: weekofyear语法:   weekofyear(string date) 
返回值: int
说明: 返回日期在当前的周数。

 

统计每天时段(按小时划分)投票情况,及投票平均分

 

SELECT count(rating),avg(rating),from_unixtime(cast(unixtimeas bigint),'HH') FROM u_data group by from_unixtime(cast(unixtime as bigint),'HH');

Summer School实验二_hive_17


排名

 

按平均分排出TOP10

select movieid,avg(rating) ar from u_datagroup by movieid order by ar desc limit 10;

 Summer School实验二_hive_18

删除表

drop table u_data;



Web浏览

通过cloudera可以很方便地配置与管理hadoop集群

请看http://caozs.blog.51cto.com/707029/1223346

Summer School实验二_hive_19




实验三

在集群上跑wordcount,出来了200个part,很多是空的。于是先get到本地,再用Linux删掉空文件。

find . -name "*" -type f -size 0c | xargs -n 1 rm -f

也可以直接看内容

hadoop dfs -cat /output/*


实验四是IBM的BigSQL,参见以下网站。

http://www.ibm.com/developerworks/cn/data/library/bd-bigsql/index.html



BigSQL是IBM基于Hadoop的定制数据库。用简单的SQL语言就可以操作,较HIVE,HBASE简单。


下载

http://www-01.ibm.com/software/data/infosphere/biginsights/quick-start/downloads.html)

下载镜像文件。装到虚拟机VMware里。


文档见下列网址

http://pan.baidu.com/s/1kTupBMn