您的位置:首页 > 产品设计 > UI/UE

MapReduce之SequenceFile转普通文件

2017-05-07 10:54 429 查看
package com.uplooking.bigdata.mr.writablez.sequecefile;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.Path;

import org.apache.hadoop.io.NullWritable;

import org.apache.hadoop.io.SequenceFile;

import org.apache.hadoop.io.SequenceFile.Reader;

import org.apache.hadoop.io.SequenceFile.Reader.Option;

import org.apache.hadoop.io.Text;

import java.io.*;

/**

 * 将一个SequenceFile的文件转变成为一个普通的文本文件

 */

public class SequenceFileReadOps {

    public static void main(String[] args) throws Exception {

        if(args == null || args.length < 2) {

            System.err.println("Parameter Errors ! Usage: <inputpath outputpath>");

            System.exit(-1);

        }

        String inputpath = args[0];

//        Path outputpath = new Path(args[1]);

        String outputpath = args[1];

        Configuration conf = new Configuration();

        Option inputOps = Reader.file(new Path(inputpath));

        Option[] opts = new Option[]{inputOps};

        Reader reader = new SequenceFile.Reader(conf, opts);

        Text key = new Text();

        BufferedWriter bw = new BufferedWriter(new FileWriter(outputpath));

        while(reader.next(key, NullWritable.get())) {//将数据写入到key里面了

            String line = key.toString();

            bw.write(line);

            bw.newLine();

        }

        bw.close();

        reader.close();

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: