简单的一个ETL数据清洗程序(MR)

该博客介绍了ETL数据清洗的需求,包括统一集合元素分隔符、避免相同分隔符、清理category中的空格以及确保字段数量正确。在解决这些问题时,博主选择了使用MR(MapReduce)程序进行ETL操作,并分享了编写程序的思路,提到了Util类、Mapper和Driver的使用。在遇到程序运行失败的问题时,博主通过删除提示的jar包并重新导入解决了问题。
摘要由CSDN通过智能技术生成

数据样本:
/**

  • SDNkMu8ZT68 w00dy911 630 People & Blogs 186 10181 3.49 494 257 rjnbgpPJUks EYC5bWF0ss8 EUPHdnE83GY
    */

1.1ETL需求

①在一个表中不管是什么集合类型,集合之间元素的分隔符必须统一

​ 在清洗时,需要让集合中元素的分隔符统一。将related ids元素的分隔符统一为&

②集合之间元素的分隔符必须和字段的分隔符不同

③祛除category中多余的空格,像tt & aa

④每行数据按照\t分割后的字段数量至少为9,否则数据不合法

1.2如何ETL

①通常情况下,要求程序产生的数据格式必须有严格要求的,尽量数据规范,避免之后频繁ETL

②如果需要ETL

​ 使用shell中的工具:cut,wc,awk进行ETL

​ 写MR程序进行ETL(目前采用)

​ 使用工具例如Kettle!

1.3编写ETL程序**

Util类

public class ETLUtil {
   

    public static  String parse(String source){
   

        //每行数据按照\t分割后的字段数量至少为10
        String[] words = source.split("\t");

        //如果related ids是必须的,至少需要10个字段
        if (words.length < 10){
   

            return null;

        }

        //祛除category中多余的空格
        words[3]=words[3].replaceAll(" ","");

        //将related ids元素的分隔符统一为&
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值