Я пишу код для преобразования большого файла паркета, который у меня есть в виде строк:
List<org.apache.parquet.example.data.simple.SimpleGroup>
, в небольшие однострочные файлы паркета, каждый из которых требует org.apache.avro.generic.GenericData.Запись.
Когда я создаю однострочные файлы, я делаю что-то вроде:
for (int a = 0; a < parquet.getData().size(); a++) {
// one row of input data
SimpleGroup simpleGroup = parquet.getData().get(a);
String aaa = simpleGroup.getString("aaa", 0);
String bbb = simpleGroup.getString("bbb", 0);
String ccc = simpleGroup.getString("ccc", 0);
// output record
GenericData.Record record = new GenericData.Record(avroSchema);
record.put("aaa", aaa);
record.put("bbb", bbb);
record.put("ccc", ccc);
// covert record using schema
byte[] bytes = recordInjection.apply(record);
data.add(bytes);
}
Хотя я показываю только три столбца, есть много столбцов.Кажется, что я должен быть в состоянии как-то вызвать:
byte[] bytes = recordInjection.apply(record);
в простой группе или аккуратно перебрать все строки простой группы, создавая GenericData.Record, но я не могу понять, как.
Кто-нибудь знает как?
Спасибо