Преобразуйте org.apache.parquet.example.data.simple.SimpleGroup в org.apache.avro.generic.GenericData.Record. - PullRequest
1 голос
/ 26 сентября 2019

Я пишу код для преобразования большого файла паркета, который у меня есть в виде строк:

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, но я не могу понять, как.

Кто-нибудь знает как?

Спасибо

...