2 qq 21194023 qq_21194023 于 2016.01.29 11:27 提问

MapReduce清洗文件输出多个文件

测试数据:
067017    DA2821EA174C4CD6F4E0914C14E740BC    尊敬的周斌颉,您编号为14060800112的项目收款逾期,担保公司将对借款人进行催收,借款人将支付您一定的逾期罚息,详情请至陆金所网站查询。    2014-11-26    
008080    B96D6244E733E1F97259927CF79B9B04    您的一笔借款已逾期!将每日产生罚息并影响您的信用记录,请您尽快还款。如您不再需要收到此类短信,请登录网站设置或致电400-090-6600    2014-11-26
420894    66AEE4A81D0DC3F7597CF14304DF8A37    马鹏云先生:您的借款第二次借款绝不逾期希望支持    第1期将于2014-12-03到期,为保证您的信誉良好,介时请及时还款,谢谢!    2014-11-26
067017    98717067FE78A6E71213A3F02969863C    尊敬的陈慧丽,您编号为14082000739的项目收款逾期,担保公司将对借款人进行催收,借款人将支付您一定的逾期罚息,详情请至陆金所网站查询。    2014-11-26
000000    4DCB184986008ADD3AD33E4860745FAA    [2111-9607-5482-7768]F 有效期2014-08-11到2014-10-31;项王故里成人票(停车场负一楼团队售票处报江苏南方旅行社验证取票,有问题联系唐13515299345)-成人票2张 
000000    822D3A7BD4B44547D5E71C60D521D694    [2111-9211-4633-7607]U 有效期2014-10-17到2014-12-31;月亮河温泉度假酒店房-双人温泉/桑拿家庭套票1张 
000000    4929EDF20844D65ECD4333FBA9D8FD7F    [2111-7081-7365-7431]G 有效期2014-12-15到2015-03-31;南京麦乐迪KTV-团圆桌餐698元/套(8-10人)VIP房(12-3)1张 
000000    F64D4901A21600ED51BE0D49DF390F81    [2111-7381-8605-8288]Z 有效期2014-11-18到2015-09-30;顺景温泉酒店-行政豪华房 (含2人温泉)1张 
000000    822D3A7BD4B44547D5E71C60D521D694    [2111-7011-4144-0946]F 有效期2014-10-17到2014-12-31月亮河温泉度假酒店房-双人特惠房2张
000000    C4183B38CF4D0141BF23CA1D794B4093    [2111-9677-3783-8938]S 有效期2013-11-01到2015-06-30汽车博物馆-双成人套票2张 
000000    BF67C952CDE878AA79D2F6683A464947    [2111-4021-6549-0044]M 有效期2014-10-08到2015-08-31北京青泉赢睿卡丁车-假日票(新)4张
000000    22FD17C8CA607FB179D7FE505748AA61    [2111-4079-9733-2324]F 有效期2015-05-01到2015-08-31大兴野生动物园-自驾区车票1张
使用MapReduce清洗数据,并根据不同的内容分别输出到多个文件
清洗规则:提取第一列,第二列,第三列中括号里面的内容
结果数据:
如果第三列包含逾期则输出到overdue.txt
067017    DA2821EA174C4CD6F4E0914C14E740BC   
008080    B96D6244E733E1F97259927CF79B9B04   
420894    66AEE4A81D0DC3F7597CF14304DF8A37   
067017    98717067FE78A6E71213A3F02969863C   
如果第三列包含房则输出到house.txt
000000    4DCB184986008ADD3AD33E4860745FAA   
000000    822D3A7BD4B44547D5E71C60D521D694     
000000    4929EDF20844D65ECD4333FBA9D8FD7F     
000000    F64D4901A21600ED51BE0D49DF390F81     
000000    822D3A7BD4B44547D5E71C60D521D694   
如果第三列包含车则输出到car.txt
000000    4DCB184986008ADD3AD33E4860745FAA   
000000    C4183B38CF4D0141BF23CA1D794B4093     
000000    BF67C952CDE878AA79D2F6683A464947   
000000    22FD17C8CA607FB179D7FE505748AA61   

原谅我新手理解力不够,能不能直接上代码?或者给个类似的完整的例子也行,使用MUltipleOutputs定义输出的多个文件时,怎么在Reduce阶段实现?
求大神指点

2个回答

devmiao
devmiao   Ds   Rxr 2016.01.29 11:33
Royal_lr
Royal_lr   Ds   Rxr 2016.01.29 13:52

你是在陆金所工作啊,,这么叼

qq_21194023
qq_21194023 不敢,能解决问题的人 才叼!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Mapreduce 处理gbk文件的方式(输入gbk文件和输出gbk文件)
package cheryl.dhcc.mapreduce; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apach
hadoop之mapreduce编程实例(系统日志初步清洗过滤处理)
刚刚开始接触hadoop的时候,总觉得必须要先安装hadoop集群才能开始学习MR编程,其实并不用这样,当然如果你有条件有机器那最好是自己安装配置一个hadoop集群,这样你会更容易理解其工作原理。我们今天就是要给大家演示如何不用安装hadoop直接调试编程MapReduce函数。
MapReduce程序处理hdfs中数据乱码问题
最近在写MapReduce程序,实现Writable接口时发现总是读不进中文字,读出来全是乱码,找了一晚上发现问题,原来hadoop只支持UTF-8的字符集,因此,在存储Text变量时要先把string变量转换成UTF-8的字符集,再给Text赋值。问题解决。
mapreduce实现多文件自定义输出
本人在项目中遇到一个问题,就是在处理日志的时候,需要有多个key,比如一行日志是 domain sip minf h b 而我处理的时候需要map输出为 key:domain+minf value h+"|"+b 和 key:sip+minf value h+"|"+b,而且还要做逻辑运算,比如相同的key的value要做累加, 普通的mr通常情况下,计算结果会以part-000*输出成多个
MapReduce输出结果到多个文件
利用MultipleOutputs可以方便的实现将结果按自己的要求输出到不同的文件,方法简单, 1,直接在map或reduce中加入类似如下的代码, 3,用mos.write替换以前的context.write 3,在main中利用MultipleOutputs.addNamedOutput(job, "shortkey", TextOutputFormat.class, Text.class, IntWritable.class);添加输出路径。
MapReduce多路径输入与多文件输出
我前段时间在完成一个公司业务时,遇到了一个这样的需求:将HDFS上按每天每小时存储的数据进行数据预处理,然后对应按天存储在HDFS........由此可得,MapReduce的输入路径是: /user/data/yyyy/MM/dd/HH/ 每天有24小时,dd/目录下有24个目录,然后,对这24个目录下的数据预处理,最后输出到dd/目录: /user/out/yyyy/MM/dd/
MapReduce处理输出多文件格式(MultipleOutputs)
MultiPleOutputs原理 MapReduce job中,可以使用FileInputFormat和FileOutputFormat来对输入路径和输出路径来进行设置。在输出目录中,框架自己会自动对输出文件进行命名和组织,如part-(m|r)-00000之类,但有时为了后续流程的方便,我们常需要对输出结果进行一定的分类和组织。以前常用的方法是在MR job运行之后,用脚本对目录下的数据
MapReduce实现数据清洗(去重)
MapReduce实现数据清洗(去重)
[Hadoop]MapReduce多输出
FileOutputFormat及其子类产生的文件放在输出目录下。每个reducer一个文件并且文件由分区号命名:part-r-00000,part-r-00001,等等。有时可能要对输出的文件名进行控制或让每个reducer输出多个文件。MapReduce为此提供了MultipleOutputFormat类。MultipleOutputFormat类可以将数据写到多个文件,这些文件的名称源于输出
MapReduce json数据应用
一、实验目的 1. 了解熟悉linux命令。 2. 学习hadoop的安装和配置。 3. 学习编写基础的MR代码。 二、实验内容 1. 建立hadoop 完全分布式模式。 2. 上传数据并且对数据进行查询。 3. 通过安装Hadoop了解Hadoop的原理     三、实验原理  MapReduce是Hadoop的核心技术之一,“Map(展开)”就是将一个任