HDFS 中的压缩文件提取

Compressed File Extraction in HDFS

我在 HDFS 中上传了一个 .gz 文件,我正在尝试提取该文件的内容并将其放入 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。请指教是哪里的问题。

您忘记将数据从 in 复制到 out。

IOUtils.copyBytes(...)