第1关:网约车撤销订单数据清洗
任务描述
基于 EduCoder 平台提供的初始数据集(数据集存放在 /data/workspace/myshixun/ProvOrderCancel 中),按照下面的要求,完成网约车撤销订单数据的清洗工作。
编程要求
判断一行数据字段是否完整,如果字段长度小于 8 且有不完整字段(字段值为空),则清洗掉这一行数据;
去重清洗:若有相同订单 id(orderid)只保留第一行,其他的清洗掉;
撤销理由(cancelreason)有大量的字符串 null,请将这些字符串用"未知"替代;
将数据集中的订单时间(ordertime)、订单撤销时间(canceltime)转换为 “yyyy-MM-dd HH:mm:ss”格式,同时只保留订单时间和订单撤销时间在 2019 年 03 月 07 日的数据,其余数据全部清洗掉;
处理数据集中的行政区划代码(address),结合 MySQL 数据库 trafficdb 的表 t_address 中的 address_code 与 address_name 数据对应,将其转换成对应的地区名称,在行政区划代码(address)字段后插入,列名为 districtname,若数据中行政区划代码在数据库没有找到对应的行政区名称,则将行政区名设置为“未知”;
清洗完的数据保存为一个 csv 文件,存放至/root/files下,字符之间分割符为|。
数据集说明
本数据集是湖南网约车撤销订单数据,包含八个字段的信息,数据集的字段含义说明如下:
字段名 说明
companyid 公司ID名
address 行政区划代码
orderid 订单ID
ordertime 订单时间
canceltime 取消时间
operator 操作类型
canceltypecode 取消操作类型
cancelreason 取消的原因
MySQL 数据库 mydb 连接方式:
url:jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=utf-8;
用户名:root;
密码:123123。
表:t_address
列名 类型 介绍
address_code varchar(255) 行政编码
address_name varchar(255) 行政区域
测试说明
平台会对你编写的代码进行测试:
如果代码正确,会执行你的代码,验证网约车撤销订单数据是否清洗成功。点击评测按钮后,可以查看清洗后的数据,是否清洗成功。若程序未通过的情况下,可以点击测试集查看具体问题。
开始你的任务吧,祝你成功!
第2关:网约车成功订单数据清洗
任务描述
基于 EduCoder 平台提供的初始数据集(数据集存放在 /data/workspace/myshixun/ProvOrderCreate 中),按照下面的要求,完成网约车成功订单数据清洗的清洗工作。
编程要求
去重清洗:若有相同订单 id(orderid)只保留第一行,其他的清洗掉;
因乘客便签(passengernote)、加密字段(encrypt_c)和支付类型(faretype)中有大量的空值,所以删除字段名为 乘客便签(passengernote)、加密字段(encrypt_c)和支付类型(faretype)的所有数据;
去除上述字段后,再判断一行数据字段是否完整,