我有一个 Parquet 输入文件。我想在我的驱动程序类中读取该输入文件并进行一些处理来设置我的作业配置。
请给我一些关于此的意见。
最佳答案
我使用以下方式读取驱动程序类中的 Parquet 文件。
ParquetMetadata readFooter = ParquetFileReader.readFooter(configuration, parquetFilePath);
MessageType schema = readFooter.getFileMetaData().getSchema();
ParquetFileReader parquetFileReader = new ParquetFileReader(
configuration, parquetFilePath, readFooter.getBlocks(), schema.getColumns());
BufferedWriter w = new BufferedWriter(new FileWriter(csvOutputFile));
PageReadStore pages = null;
try {
while (null != (pages = parquetFileReader.readNextRowGroup())) {
final long rows = pages.getRowCount();
LOG.info("Number of rows: " + rows);
final MessageColumnIO columnIO = new ColumnIOFactory().getColumnIO(schema);
final RecordReader<Group> recordReader = columnIO.getRecordReader(pages, new GroupRecordConverter(schema));
for (int i = 0; i < rows; i++) {
final Group g = recordReader.read();
}
}
}
关于mapreduce - 在 Driver 类中读取 Parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643935/