web-dev-qa-db-ja.com

SparkなしでS3からParquetファイルを読み取る方法は? Java

現在、Apache ParquetReaderを使用して、次のようなローカルの寄木細工のファイルを読み取っています。

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);

しかし、私はそれをダウンロードせずにS3を介して寄木細工のファイルにアクセスしようとしています。パーケットリーダーでInputstreamを直接解析する方法はありますか?

3
Nicholas Liu

はい、hadoopの最新バージョンにはS3ファイルシステムのサポートが含まれています。 s3aライブラリのhadoop-awsクライアントを使用して、S3ファイルシステムに直接アクセスします。

HadoopInputFileパスは、プロパティを使用して構成された認証資格情報s3a://bucket-name/prefix/keyおよびaccess_keyとともに、secret_keyとして構築する必要があります

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

さらに、これらの依存ライブラリが必要になります

  • hadoop-common JAR
  • aws-Java-sdk-bundle JAR

続きを読む: 関連する構成プロパティ

1
franklinsijo