【问题标题】:Reading a parquet file in Driver class在 Driver 类中读取镶木地板文件
【发布时间】:2015-06-21 01:01:16
【问题描述】:

我有一个镶木地板输入文件。我想在我的驱动程序类中读取该输入文件并进行一些处理来设置我的作业配置。

请给我一些意见。

【问题讨论】:

  • 你的问题是什么?
  • 问题是如何在我的工作类中读取镶木地板文件。我正在寻找这样做的课程。我已经找到了解决方案,很快就会在这里更新。

标签: mapreduce parquet


【解决方案1】:

我在我的驱动类中使用下面的方式读取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();
    }
  }
}

【讨论】:

  • readFooter 已弃用。你可以得到同样的东西:ParquetFileReader.readFooter(configuration, inputPath, ParquetMetadataConverter.NO_FILTER)
猜你喜欢
  • 2021-01-12
  • 2022-11-24
  • 2019-08-04
  • 2022-06-16
  • 2019-09-23
  • 2017-12-27
  • 2017-05-06
  • 2018-08-13
  • 1970-01-01
相关资源
最近更新 更多