头歌 MapReduce综合应用案例 — 招聘数据清洗

任务描述
本关任务:对数据按照一定规则进行清洗。

编程要求
根据提示,在右侧编辑器补充代码,对数据按照一定规则进行清洗。

数据说明如下:data.json;

数据所在位置:/root/data/data.json;

{
    "id":4,
    "company_name":"智联招聘网/Zhaopin.com",
    "eduLevel_name":"本科",
    "emplType":"全职",
    "jobName":"大数据工程师010",
    "salary":"20K-30K",
    "createDate":"2019-04-21T12:14:27.000+08:00",
    "endDate":"2019-05-21T12:14:27.000+08:00",
    "city_code":"530",
    "companySize":"1000-9999人",
    "welfare":"",
    "responsibility":"岗位职责:1、负责体系大数据分析的ETL的代码开发及优化;2、...",
    "place":"北京市朝阳区望京阜荣街10号首开广场5层",
    "workingExp":"1-3年"
}
id    company_name    eduLevel_name    emplType    jobName    salary    createDate    endDate    city_code    companySize    welfare    responsibility    place    workingExp
id编号    公司名称    学历要求    工作类型    工作名称    薪资    发布时间    截止时间    城市编码    公司规模    福利    岗位职责    地区    工作经验
Mysql数据库:

用户名:root;
密码:123123。

数据库名:mydb;

城市编码表:province;

列名    类型    非空    是否自增    介绍
city_code    varchar(255)            城市编码
city_name    varchar(255)            城市名称
HBase数据库:

最终结果表:job 列族:info。

清洗规则:

若某个属性为空则删除这条数据;

处理数据中的salary;

  1)mK-nK:(m+n)/2;
  2)其余即为0。

按照MySQL表province 将城市编码转化为城市名;

将结果存入HBase表job中;

设置数据来源文件路径及清洗后的数据存储路径:
数据来源路径为: /root/data/data.json;
清洗后的数据存放于:HBase表job。

测试说明
平台会对你编写的代码进行测试:

评测之前先在命令行启动HBase:start-hbase.sh;

点击测评后MySQL、HBase所需的数据库和表会自动创建好。

JsonTest:测试类操作
JsonMap:MapReduce操作
DBHelper:MySQL工具类

具体本关的预期输出请查看右侧测试集。

开始你的任务吧,祝你成功!

 创作不易,如果能解决您的问题,麻烦您点赞、收藏+关注,一键三连!!!

 

package com;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBHelper {
    /********** begin **********/
    private static final String driver = "com.mysql.jdbc.Driver";
    private static final String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8";
    private static final String username = "root";
    private static final String password = "123123";
    private static Connection conn = null;
    static {
        try {
            Class.forName(driver);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    public static Connection getConnection() {
        if (conn == null) {
            try {
                conn = DriverManager.getConnection(url, username, password);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return conn;
        }
        return conn;
    }
    public static void main(String[] args) {
        Connection connection = DBHelper.getConnection();
    }
    /********** end **********/
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码的苦13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值