0
目前我們在Hadoop中運行MapReduce作業,其輸出壓縮爲SnappyCompression。然後我們將輸出文件移至S3。現在我想通過Java從S3讀取Compressed文件。如何從Java中的S3讀取Snappy壓縮文件
目前我們在Hadoop中運行MapReduce作業,其輸出壓縮爲SnappyCompression。然後我們將輸出文件移至S3。現在我想通過Java從S3讀取Compressed文件。如何從Java中的S3讀取Snappy壓縮文件
我發現答案從S3讀快速壓縮文件。首先,您應該從S3獲取對象內容。然後解壓縮文件。
S3Object s3object = s3Client.getObject(new GetObjectRequest(bucketName,Path));
InputStream inContent = s3object.getObjectContent();
CompressionCodec codec = (CompressionCodec) ReflectionUtils.newInstance(SnappyCodec.class, new Configuration());
InputStream inStream = codec.createInputStream(new BufferedInputStream(inContent));
InputStreamReader inRead = new InputStreamReader(inStream);
BufferedReader br = new BufferedReader(inRead);
String line=null;
while ((line = br.readLine()) != null){
system.out.println(line);
}
任你用「同樣的方式」作爲Hadoop的或谷歌發現https://github.com/xerial/snappy-java – sodik
我想您所提供的鏈接,但它並沒有說任何東西閱讀文件。它壓縮或解壓縮文件(即使我正在使用該問題面臨一些問題)。在s3中,我們使用getObjectContent讀取文件。有什麼方法可以直接從s3讀取壓縮文件。 – salmanbw
我想從s3複製文件到本地,然後嘗試讀取壓縮文件。但是找不到合適的方法來做到這一點。 – salmanbw