Mongodb入门作业

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入门作业_第1张图片
其中横轴为城市名称,纵轴为职位数量。
可以从多个角度进行数据分析。比如显示各种职位数量前十的排序和图示,或者求职者学历水平的排序和图示,或者薪酬前十的排序和图示,等等。

附录:
1.将“keshe”文件夹拷贝到服务器的本地目录。
Mongodb入门作业_第2张图片
2.用MongoDB的小程序“mongorestore”,将数据文件恢复到本地服务器的mongoDB数据库里面。
在这里插入图片描述
Mongodb入门作业_第3张图片
如果对mongorestore用法要继续了解,请查看如下链接: https://www.cnblogs.com/ytxiao/p/12919200.html
3.查看就业数据记录
Mongodb入门作业_第4张图片
以上是老师给的题目


1. 导入数据: 使用mongorestore的时候dir后面的目录似乎要用绝对路径,相对路径总是失败。
Mongodb入门作业_第5张图片
2. 查看数据:
Mongodb入门作业_第6张图片
3. 统计分析:

  1. 从skill分析每个职业需要skill的数量。skillLables是列表,使用length求长度,长度作为key
    Mongodb入门作业_第7张图片

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

  2. 统计各个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}}])Mongodb入门作业_第8张图片
  3. 划分酬薪(eg:20k-30k)
    先用split对-划分数组,然后用replace去掉k。
    update和set保存结果
    先划分出最大值和最小值,再求平均值,由于划分结果是字符串,需要强转成int
    括号,大括号记得对齐在这里插入图片描述
    在这里插入图片描述
  4. 各种mapreduce
    Mongodb入门作业_第9张图片
    Mongodb入门作业_第10张图片

Mongodb入门作业_第11张图片
Mongodb入门作业_第12张图片
Mongodb入门作业_第13张图片

  1. 城市平均酬薪排序
    (命名不太好,company改成city才对,懒得改了)
    Mongodb入门作业_第14张图片
    Mongodb入门作业_第15张图片
  2. 教育酬薪
    Mongodb入门作业_第16张图片

查看做的表格
Mongodb入门作业_第17张图片

4.导出
Mongodb入门作业_第18张图片

你可能感兴趣的:(nosql,linux,mapreduce)