В настоящее время я пытаюсь выполнить пакетную обработку с использованием 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 поддерживает операцию добавления.