hdfs中的hadoop压缩文件提取

qgzx9mmu  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(390)

我有一个 .gz 上传到hdfs中的文件,我试图提取该文件的内容并将其放入hdfs的同一目录中。这是我尝试的代码:

final String uri = "hdfs://localhost:8020/user/input1/output.gz";
    Path pt=new Path(uri);
    FileSystem fs = FileSystem.get(new Configuration());

    Configuration conf = new Configuration();
    CompressionCodecFactory factory = new CompressionCodecFactory(conf);
    CompressionCodec codec = factory.getCodec(pt);

    if(codec == null){
        System.err.println("No Codec found !!!");
        System.exit(1);
    }

    String outputUri = CompressionCodecFactory.removeSuffix(uri, codec.getDefaultExtension());
    InputStream in = null;
    OutputStream out = null;
    try {
        in = codec.createInputStream(fs.open(pt));
        out = fs.create(new Path(outputUri));
    } finally{
        IOUtils.closeStream(in);
        IOUtils.closeStream(out);
    }

正在提取文件,但内容无效 0 B . 请告知问题的起因。

i5desfxk

i5desfxk1#

你忘了把数据从输入复制到输出。

IOUtils.copyBytes(...)

相关问题