3.1 数据集 ml-100k
3.2 分析过程
-
建表,日期为 ‘2019-04-01 23:33:08’ 格式。
create table u_data_ymdhms (userid INT, movieid INT, rating INT, strtime date);
-
转化时间到新表。
insert overwrite table u_data_ymdhms select userid, movieid, rating, from_unixtime(int(unixtime), 'yyyy-MM-dd HH:mm:ss') from u_data
-
按月份统计每个月观影人数。
select month(strtime),count(1) from u_data_ymdhms group by month(strtime);
month count 1 14237 2 10946 3 13034 4 8839 9 6863 10 10313 11 24137 12 11631 -
统计每个月1--5星评价的数目。列传行,将数据转化为 month, star1, star2,.., star5.
注意:保存到本地文件夹中,一定要新建一个空文件夹!!!!否则会覆盖所有文件!!!!create table u_monthstar (month int, star1 int, star2 int, star3 int, star4 int, star5 int); insert into table u_monthstar select month(strtime), sum(case rating when 1 then 1 else 0 end), sum(case rating when 2 then 1 else 0 end), sum(case rating when 3 then 1 else 0 end), sum(case rating when 4 then 1 else 0 end), sum(case rating when 5 then 1 else 0 end) from u_data_ymdhms group by month(strtime); # 保存到本地文件 insert overwrite local directory '/home/badou/data/terminated_fields' row format delimited fields terminated by '\t' select * from u_monthstar;
-
python中用dataframe读取,画图,观察每个月份1 -- 5星评价比例分布。
movie_groupby_monthstar.png
网友评论