Я создал вывод Parquet от Apache Spark, следовательно, каталог с несколькими файлами, по одному на раздел.Теперь я хочу прочитать это с Java.(Новый API, многие методы устарели сегодня)
Чтение одного файла в порядке:
HadoopInputFile file = HadoopInputFile.fromPath(new Path(nodeId), conf);
ParquetReadOptions options = ParquetReadOptions.builder().build();
try (ParquetFileReader reader = ParquetFileReader.open(file, options);) {
MessageType schema = reader.getFileMetaData().getSchema();
}
Если файл является каталогом, ParquetFileReader жалуется на «является каталогом».Хорошо.Поэтому мне нужен либо метод, который поддерживает каталог или позволяет добавлять несколько файлов.Этот метод должен прочитать все файлы и объединить схему.
Мой самый последний эксперимент -
ParquetReadOptions options = ParquetReadOptions.builder().build();
ReadSupport readSupport = new GroupReadSupport();
ParquetReader r = ParquetReader.builder(readSupport, new Path(nodeId)).build();
SimpleGroup o = (SimpleGroup) r.read();
У SimpleGroup есть схема, хотя и не предоставленная, но я уверен, что могу пойти по этому пути.
Но нет ли более простого способа?
Метод, который также предоставляет метод getFileMetaData (). GetSchema ()?Что не нужно читать первую запись только для того, чтобы иметь схему?Что создает объединенную схему?
Буду признателен за любые подсказки и примеры ...