繁体   English   中英

Java文件压缩(Hadoop DefaultCodec)-如何使其易于阅读?

[英]File Compression in Java (Hadoop DefaultCodec) - how to make it human readable?

我有一个用org.apache.hadoop.io.compress.DefaultCodec压缩的文件,我想将此文件恢复为原始格式-这是JSON格式的字符串。

我不太确定如何使用DefaultCodec的文档来实现此目的。 有人可以给我举个例子吗? 到目前为止,这就是我所掌握的一切,我不知道自己是否步入正轨...

//grab my file (it's on S3)
S3Object fileOnS3 = s3Service.getObject("mys3bucket", "myfilename");

DefaultCodec codec = new DefaultCodec();
Decompressor decompressor = codec.createDecompressor();

//does the following line create a input stream that parses DefaultCodec into uncompressed form?
CompressionInputStream is = codec.createInputStream(fileOnS3.getDataInputStream(), decompressor);
//also, I have no idea what to do from here.

我想将未压缩的版本存储在String变量中,因为我知道文件很小。

我会尝试以下方法:

  1. 使用hdfs shell命令-text和unix shell解压缩文件,如下所示:
    hadoop dfs -text /path/on/hdfs/ > /local/path/for/local/raw/file
  2. 使用SequenceFileInputFormat作为输入来加载文件,并使用标识映射器(和零缩减器)将其设置为输出TextOutputFormat。

我会选择第一个选项,特别是如果您说输入文件是一个小字符串。 如果要将此文件加载到String变量中,则可以加载该文件(这看起来不必要地昂贵),也可以将-text命令的输出立即存储在String中(在>之后跳过部分)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM