如何在没有 Spark 的情况下从 S3 读取 Parquet 文件?爪哇

Nic*_*Liu 10 java hadoop amazon-s3 apache-spark parquet

目前,我正在使用 Apache ParquetReader 来读取本地 parquet 文件,它看起来像这样:

ParquetReader<GenericData.Record> reader = null;
    Path path = new Path("userdata1.parquet");
    try {
        reader = AvroParquetReader.<GenericData.Record>builder(path).withConf(new Configuration()).build();
        GenericData.Record record;
        while ((record = reader.read()) != null) {
            System.out.println(record);
Run Code Online (Sandbox Code Playgroud)

但是,我尝试通过 S3 访问镶木地板文件而不下载它。有没有办法直接用镶木地板阅读器解析输入流?

fra*_*ijo 6

是的,最新版本的 hadoop 包括对 S3 文件系统的支持。使用库s3a中的客户端hadoop-aws直接访问S3文件系统。

路径HadoopInputFiles3a://bucket-name/prefix/key与身份验证凭据一起构建access_keysecret_key使用属性进行配置

  • fs.s3a.access.key
  • fs.s3a.secret.key

此外,您还需要这些依赖库

  • hadoop-common
  • aws-java-sdk-bundle

了解更多:相关配置属性