这是一个系列的文章, 介绍了一个完整的大数据分析案例, 包括有关的软件安装, 数据集的生成, 数据分析以及最终的数据可视化. 本文介绍软件安装和数据集生成.
前置知识要求
- linux基本知识, 尤其是shell有关的知识
- Java基础知识
- SQL语言
- Web有关知识(Servlet, JavaScript)
如果其中有没有学过的知识, 建议先对相关知识有基本的了解以后再阅读本文.
软件安装
关于Hadoop平台的软件安装, 网络上有很多教程, 这里推荐阅读厦门大学实验室的有关博客
强烈建议同时阅读各个软件的官网上的安装指南. 由于各软件都在不断的更新, 可能有各种细节的变化, 先阅读官网资料有助于减少由于安装失败浪费的时间.
数据集生成
由于一般比较难获得合适的数据集, 而在练习数据分析的过程中数据本身其实相对来说并不太重要. 因此可以先编写一个小程序, 按照一定的规律产生需要的数据集.
由于数据集由程序产生, 因此数据格式等方面都可以控制, 避免了数据清洗的繁琐步骤, 从而将主要精力放在数据分析上. 此外由于完全掌握数据生成规律, 也可以和后续的统计分析结果相互印证.
用户浏览数据集
用户浏览数据集可以分为5个字段,即用户id
,商品id
,用户行为
,时间
,地点
. 其中用户行为
包括四种情况,即浏览,收藏,加入购物车以及购买. 时间是精确到天的时间,地点是精确到省份的时间.
用户id
和商品id
的处理比较简单,可以直接随机. 对于用户行为
, 显然四种操作的发生比例不是均匀的, 因此上述操作实际出现的比例可以大约设置为96:1:2:1. 对于时间
, 为了保证随机数据不至于相差太远,可以设置为在最近一年以内随机产生,具体代码如下所示
1 | public String getDay(){ |
其中Calendar可以根据给定的偏移计算移动之后的日期, 因此只需要在0~356之间产生一个随机数,并且用当前的日期减去这个随机数即可.对于地点
, 可以直接随机产生. 但考虑到各省的人口数量相差比较大, 因此更加精细的做法是根据人口的数量按照比例产生. 有关代码由于长度原因就不贴上来了, 全部的代码都已经开源到GitHub, 点击此处查看代码.
把各个随机器产生的数据收集到一起并按照一定的格式输出为文件, 即可完成数据集的制作. 考虑到每条数据的大约占用43B的空间, 因此可以产生2333万条数据,最终的数据集大小为1GB. 产生的部分数据格式如下所示
1 | 1 26068 255 1 2017-09-11 辽宁省 |
其中第一列为记录的序号
,之后依次是用户id
,商品id
,用户行为
,时间
和地点
. 注意到, 上述数据中用户的行为与时间,地点基本没有关联. 由于数据的随机, 因此单独观察一个用户时,该用户会在各种时间和地点产生记录. 针对这一问题,可以先随机产生若干用户,然后以用户的属性产生数据.
最后更新: 2024年04月18日 13:26
版权声明:本文为原创文章,转载请注明出处