案例:自定义outputFormat

阅读: 评论:0

案例:自定义outputFormat

案例:自定义outputFormat

====

案例:自定义outputFormat--将订单的好评与差评进行区分开来


2.1 需求
现在有一些订单的评论数据,需求,将订单的好评与差评进行区分开来,将最终的数据分开到不同的文件夹下面去,数据内容参见资料文件夹,其中数据第九个字段表示好评,中评,差评。0:好评,1:中评,2:差评
2.2 分析
程序的关键点是要在一个mapreduce程序中根据数据的不同输出两类结果到不同目录,这类灵活的输出需求可以通过自定义outputformat来实现

2.3 实现
实现要点:
1、    在mapreduce中访问外部资源
2、    自定义outputformat,改写其中的recordwriter,改写具体输出数据的方法write()

k1: LongWritable; v1: Text
k2: Text, 一行文本内容; v2: NullWritable
k3: Text; v3: NullWritable

代码实现:
package cn.itcast.demo4.outputformat;

import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.RecordWriter;
import org.apache.hadoop.mapreduce.TaskAttemptContext;

import java.io.IOException;

public class MyRecordWriter extends RecordWriter<Text,NullWritable> {
    private FSDataOutputStream goodStream;
    private FSDataOutputStream badStream;

    public MyRecordWriter(FSDataOutputStream goodStream,FSDataOutputStream badStream){
        dStream = goodStream;
        this.badStream = badStream;
    }

    @Override
    public void write(Text text, NullWritable nullWritable) throws IOException, InterruptedException {

本文发布于:2024-02-05 06:17:36,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170726065063765.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:自定义   案例   outputFormat
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23