java - 如何在Java中从S3读取Snappy压缩文件

标签 java hadoop amazon-s3 snappy

当前,我们正在Hadoop中运行MapReduce作业,其中输出被压缩到SnappyCompression中。然后,我们将输出文件移至S3。现在,我想通过Java从S3读取压缩文件。

最佳答案

我找到了从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);
    }   

关于java - 如何在Java中从S3读取Snappy压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29816067/

相关文章:

python - 从 Amazon S3 和 Boto3 下载并读取 HDF5 文件

java - 如何从 SVG 中获取 BufferedImage?

java - 成员使用 "this"初始化

hadoop - 如何将数据附加到存储在HDFS中的文件

json - 如何在 Pig 中加入 2 个不同的变量?

postgresql - 将 AWS Postgres RDS 表导出到 AWS S3

java - Spring ,Java : Passing Generic object List as return type

java - 将 GWT 模块作为 JavaScript 分发

linux - 无需通过 ssh 连接到本地主机即可启动 Hadoop

Java AWS SDK S3上传性能