Чтение файла Parquet с помощью Apache Beam Java SDK без предоставления схемы

Кажется, что метод org.apache.beam.sdk.io.parquet.ParquetIO.readFiles требует передачи схемы.

  • Есть ли способ избежать необходимости передавать схему?
  • Разве схема не включена в файл Parquet?
  • Что делать, если я пытаюсь прочитать несколько файлов Parquet с разной схемой?

person 3thanZ    schedule 25.11.2019    source источник


Ответы (1)


Пожалуйста, найдите мой ответ в строке

  • Есть ли способ избежать необходимости передавать схему? В настоящее время не существует механизма, позволяющего избежать передачи схемы паркетных файлов.

  • Разве схема не включена в файл Parquet? Да, это правильно, метаданные в заголовке как определение схемы файла. Обратитесь к BEAM-8344, который является запросом открытой функции для поддержки предполагаемой схемы.

  • Что делать, если я пытаюсь прочитать несколько файлов Parquet с разной схемой? Вы можете сделать что-то, как показано ниже, при этом вы можете передавать шаблоны и пути к файлам и указывать разные схемы.

  PCollection<FileIO.ReadableFile> files = pipeline
    .apply(FileIO.match().filepattern(options.getInputFilepattern())
    .apply(FileIO.readMatches());

  PCollection<GenericRecord> output = files.apply(ParquetIO.readFiles(SCHEMA));
person Jayadeep Jayaraman    schedule 26.11.2019