1. 从本地HDFS上拿取csv文件并初步实现去重功能
需求:写两个类: HdfsUtils ,用于连接hdfs和从hdfs上下载数据
SprakUtils ,用于连接spark
一个方法: duplicate() ,去重方法,先把方法写到main函数里
把连接hdfs,从hdfs上下载数据,连接spark,使用spark去重封装成方法,可以将hdfs操作和人spark操作相关的方法封装成不同类,类名为HdfsUtils 和SparkUtils
示例:
HdfsUtils.connect('192.168.31.2:50070'); //连接hdfs
HdfsUtils.get("/data//bosssjob.csv")
SparkUtils.connect() // 连接spark
spark.utils.distinct() //数据去重
整体步骤:
- 编写代码从hdfs上获取数据
- 使用spark的去重方法去重
2. 直接使用原数据进行数据分析
需求: 将代码写成一个java类,类名叫JobParse ,创建此类的实例对象并调用该对象的方法可直接获取分析完之后的数据
需要包含的方法:
parse_area_job() :调用此函数可以获取每个地方岗位数的分析结果 parse_tecs() :调用此函数可以获取需要的技术分析结果 parse_salary() :调用此函数可以获取最高最低和平均薪资的分析结果 ``
供他人使用的示例:
JobParse jobParse = new JobParse() //JobParse是自己写的数据分析类,调用构造函数获取一个对象
area_job = jobParse.parse_area_job() //调用方法中的parse方法可以获取分析后的每个地方的岗位数
data数据格式:字典格式
分析维度及操作:
- 每个地方的岗位数
方法:parse_area_job 返回值:area_job 返回值类型:DataFrame
| 数量 |
---|
地区 | | 湖南 | 1500 | 湖北 | 4550 | 湖北 | 4550 | 湖北 | 4550 | 湖北 | 4550 |
- 分析需求的技术数量
方法:parse_tecs() 返回值:tec_nums 返回值类型:DataFrame
具体步骤: 2.1 获取对应列tecs 2.2 去重,枚举出所有出现过的岗位,写入一个列表only_tecs 2.3 对比tecs 和only_tecs ,将相似的转换为only_tecs 中相近的值 2.4 统计原数据中每种技术出现的次数,返回结果tec_nums ,格式为dataframe tec_nums 格式:
| 数量 |
---|
技术 | | spark | 15000 | java | 20000 | java | 20000 | java | 20000 |
- 最高和最低的薪资,需要实现中文转换数值
方法:parse_salary() 返回值:jobs_salary 返回值类型:DataFrame
返回值示例格式:
| 最低工资 | 最高工资 | 平均工资 |
---|
数量 | 4500 | 35000 | 7000 |
3. 连接DM8数据库,使用假数据进行读写数据库操作
需求:能够连接数据库,并将阮方杰处理后的数据放入数据库的不同表中
代码规范要求: 一个类: DAO :用来连接和增删改查数据库,本项目只需要写入即可
DAO 类中需要实现的方法:
connect() 连接数据库write() 写入数据
写入的表和写入的数据:
表 | 数据 | 备注 |
---|
job_area | job_area | 每个地区的职位数 | tec_nums | tec_nums | 所有的职位技术要求出现过的次数 | jobs_salary | jobs_salary | 职位薪资的分析结果 |
步骤: 1、解决连接数据库的代码 2、解决编写代码写入数据库
供他人使用的示例:
import DAO
DAO dao = new DAO() // 创建一个数据库管理对象
dao.write(dataframe) // 写入datafeme
|