Как прочитать файл Parquet от S3 без искры? Java - PullRequest
3 голосов
/ 09 апреля 2020

В настоящее время я использую 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 напрямую с помощью программы чтения паркета?

1 Ответ

1 голос
/ 14 апреля 2020

Да, в последних версиях oop включена поддержка файловой системы 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

Подробнее: Соответствующие свойства конфигурации

...