在没有 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
专家
已提问 5 个月前16 查看次数
1 回答
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
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则