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等)进行数据作图和显示。 如下图显示的是就业职位数量前十的城市。

mongodb快速入门 pdf mongodb实战pdf_linux

其中横轴为城市名称,纵轴为职位数量。

可以从多个角度进行数据分析。比如显示各种职位数量前十的排序和图示,或者求职者学历水平的排序和图示,或者薪酬前十的排序和图示,等等。

附录: 1.将“keshe”文件夹拷贝到服务器的本地目录。

mongodb快速入门 pdf mongodb实战pdf_数据_02

2.用MongoDB的小程序“mongorestore”,将数据文件恢复到本地服务器的mongoDB数据库里面。

mongodb快速入门 pdf mongodb实战pdf_mapreduce_03

mongodb快速入门 pdf mongodb实战pdf_mapreduce_04

如果对mongorestore用法要继续了解,请查看如下链接:

3.查看就业数据记录

mongodb快速入门 pdf mongodb实战pdf_nosql_05

以上是老师给的题目


1. 导入数据: 使用mongorestore的时候dir后面的目录似乎要用绝对路径,相对路径总是失败。

mongodb快速入门 pdf mongodb实战pdf_linux_06

2. 查看数据:

mongodb快速入门 pdf mongodb实战pdf_mongodb快速入门 pdf_07

3. 统计分析:

  1. 从skill分析每个职业需要skill的数量。skillLables是列表,使用length求长度,长度作为key

查询数组长度导出csv统计数组中个元素出现次数查询结果插入指定表 数据库job,原本有一个collection,插入指定表后变两个collection,上面的job_skill也变成第三个collection

  1. 统计各个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}}])
  2. 划分酬薪(eg:20k-30k) 先用split对-划分数组,然后用replace去掉k。 update和set保存结果 先划分出最大值和最小值,再求平均值,由于划分结果是字符串,需要强转成int (括号,大括号记得对齐)
  3. 各种mapreduce

mongodb快速入门 pdf mongodb实战pdf_linux_08

mongodb快速入门 pdf mongodb实战pdf_linux_09

mongodb快速入门 pdf mongodb实战pdf_linux_10

  1. 城市平均酬薪排序 (命名不太好,company改成city才对,懒得改了)
  2. 教育酬薪

查看做的表格

mongodb快速入门 pdf mongodb实战pdf_数据_11

4.导出

mongodb快速入门 pdf mongodb实战pdf_nosql_12