Есть ли способ добавить данные в существующий файл Parquet с той же схемой, используя Java API - PullRequest
0 голосов
/ 28 мая 2019

В настоящее время я пытаюсь выполнить пакетную обработку с использованием Spring Batch с CSV для обработки данных Parquet. Есть ли способ с помощью Java API, где я могу добавить данные в файл Parquet, поскольку пакетная обработка является итеративным подходом.

Я попытался объединить файлы, но я не уверен, что это правильный подход.

@ Override public void write (список сотрудников) выдает исключение {

    if(!employees.isEmpty()) {
        Path dataFile=new Path(destinationFilePath+"-"+String.valueOf(i++)+".parquet");
        ParquetWriter<Employee> writer = AvroParquetWriter.<Employee>builder(dataFile)
                .withSchema(ReflectData.AllowNull.get().getSchema(Employee.class))
                .withDataModel(ReflectData.get())
                .withConf(new Configuration())
                //.withCompressionCodec(CompressionCodecName.SNAPPY)
                .withWriteMode(ParquetFileWriter.Mode.CREATE)
                .build();
        for (Employee employee : employees) {
            writer.write(employee);
        }
        writer.close();

Это существующий код, в котором ParquetFileWriter.Mode.CREATE & ParquetFileWriter.Mode.OVERWRITE являются единственными доступными параметрами, но spark поддерживает операцию добавления.

...