在没有 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
전문가
질문됨 6달 전30회 조회
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
전문가
답변함 6달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인