簡體   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