在驱动程序中读取镶木地板文件 class
Reading a parquet file in Driver class
我有一个镶木地板输入文件。我想在我的驱动程序中读取该输入文件 class 并进行一些处理以设置我的作业配置。
请给我一些意见。
我在我的驱动程序中使用以下方式读取Parquet文件class。
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();
}
}
}
我有一个镶木地板输入文件。我想在我的驱动程序中读取该输入文件 class 并进行一些处理以设置我的作业配置。
请给我一些意见。
我在我的驱动程序中使用以下方式读取Parquet文件class。
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();
}
}
}