MapReduce清洗数据
注意:此代码虽能完美实现需求,但还有一些地方需要优化
详细优化内容请访问下方链接,更新时间2019/03/13
https://blog.youkuaiyun.com/weixin_42063239/article/details/88537897
前言
爬虫爬取的数据中会有一些数据有空值或者数据重复,想要得到规范的数据则要进行数据清洗,对保存为csv类型的数据来说可以用python的pandas库进行清洗,无论是去重还是去空几行代码就可以解决,但是对于海量数据来说用MapReduce则是更优的选择,而且马上要参加的比赛也是要求用MapReduce进行清洗,想想也是,如果用pandas一条drop_duplicates()那也没有什么能考察的点了,下面是我在爬取前程无忧职位招聘相关数据后对其进行清洗的过程
目标
对上传的csv文件进行去空去重,并把每个字段的间隔由逗号“,”改为“|”
准备
需要搭建好的hadoop平台,伪分布式亦可,MapReduce代码使用intellij IDEA开发并打出jar包上传到linux中运行
数据
这是部分数据,因为并不是很大只有20M+所以直接用excel打开了,但依然需要一些时间响应
注意:这种操作是错误的!!!如果数据量够大,基本这样操作就GG了,正确操作为在linux系统里用head -100 file_name查看前100行数据,或者用pandas等查看部分数据,这里为了方便所以直接用excel打开
代码部分
创建项目
IDEA新建普通java项目,导入编写MapReduce所需要的jar包注:曾经耗费大量时间去在网上找jar包,优快云上的jar包都需要用积分去下载而且版本也不一定对,历经千辛万苦从hadoop官网下了几个jar包后发现还是少,最后发现集群中hadoop文件夹下就有,也就是我们解压的那个hadoop的tar包里就有,在hadoop目录下share/h