在没有 hadoop 的情况下从 S3 读取 Parquet 文件

0

【以下的问题经过翻译处理】 我需要在 Maven 项目中使用 Java 从 S3 读取 Parquet 文件。我正在使用以下代码读取 Parquet 文件,但是当我包含 parquet 和 Hadoop 依赖项时,我正在部署的无服务器应用程序超过了 50Mb 的限制。我需要 Hadoop 路径和配置类来读取 S3 上的文件。有什么解决 办法吗?

List<SimpleGroup> simpleGroups = new ArrayList<>(); ParquetFileReader reader = ParquetFileReader.open(HadoopInputFile.fromPath(new Path(filePath), conf)); MessageType schema = reader.getFooter().getFileMetaData().getSchema(); List<Type> fields = schema.getFields(); PageReadStore pages; while ((pages = reader.readNextRowGroup()) != null) { long rows = pages.getRowCount(); MessageColumnIO columnIO = new ColumnIOFactory().getColumnIO(schema); RecordReader recordReader = columnIO.getRecordReader(pages, new GroupRecordConverter(schema)); for (int i = 0; i < rows; i++) { SimpleGroup simpleGroup = (SimpleGroup) recordReader.read(); simpleGroups.add(simpleGroup); } } reader.close();

profile picture
EXPERTE
gefragt vor 6 Monaten29 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 您是否尝试过 S3 Select?这将完全避免 Hadoop 的依赖项。另请查看 示例 以使用 S3 select 和 简单的 sql 查询 搜索数据/aws-samples/s3-select-phonebook-search/blob/master/src/main/java/com/amazonaws/samples/s3select/s3_select_demo/S3SelectDemoLambdaHandler.java)

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen