NoSQL数据库课程考核
题目:基于NoSQL的2020年招聘就业数据分析 要求:以下内容均需完成,并且用文字/图片反映在课程报告中。 1.数据库推荐使用MongoDB,因为提供的数据文件(在“keshe”文件夹内)是BSON格式,可以直接用MongoDB读取到本地数据库。读取方法可以参考文末附录,并且自己再上网查找相关操作信息。如果用其他数据库,则需要自己进行格式转换和数据记录存储。该就业招聘数据是2020年6月份从“拉勾网”进行部分爬取并且存入MongoDB。这里有13604条招聘数据,但是并不完整。数据仅供教学使用,请勿外传。 2.对提供的2020年就业数据文件进行读取,并且以记录形式存入NoSQL数据库。就业数据文件发送到课程QQ群的群文件。 3.分布式/伪分布式存储。要求对数据库采用伪分布式或者分布式安装 4.采用查询语句大致查询就业数据情况。采用Mapreduce编程进行就业数据的分布式读取和统计。 5.在就业数据读取之后,采用编程软件(Java、Python、Matlab、甚至一些图形开发包如E-chart等)进行数据作图和显示。 如下图显示的是就业职位数量前十的城市。其中横轴为城市名称,纵轴为职位数量。
可以从多个角度进行数据分析。比如显示各种职位数量前十的排序和图示,或者求职者学历水平的排序和图示,或者薪酬前十的排序和图示,等等。
附录: 1.将“keshe”文件夹拷贝到服务器的本地目录。2.用MongoDB的小程序“mongorestore”,将数据文件恢复到本地服务器的mongoDB数据库里面。
如果对mongorestore用法要继续了解,请查看如下链接:
3.查看就业数据记录
以上是老师给的题目
1. 导入数据: 使用mongorestore的时候dir后面的目录似乎要用绝对路径,相对路径总是失败。
2. 查看数据:
3. 统计分析:
- 从skill分析每个职业需要skill的数量。skillLables是列表,使用length求长度,长度作为key
查询数组长度导出csv统计数组中个元素出现次数查询结果插入指定表 数据库job,原本有一个collection,插入指定表后变两个collection,上面的job_skill也变成第三个collection
- 统计各个skill的数量 db.skill.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:"skillLables",count:{KaTeX parse error: Expected 'EOF', got '}' at position 6: sum:1}̲}},{sort:{count:-1}}])
- 划分酬薪(eg:20k-30k) 先用split对-划分数组,然后用replace去掉k。 update和set保存结果 先划分出最大值和最小值,再求平均值,由于划分结果是字符串,需要强转成int (括号,大括号记得对齐)
- 各种mapreduce
- 城市平均酬薪排序 (命名不太好,company改成city才对,懒得改了)
- 教育酬薪
查看做的表格
4.导出