Мой код в java читает teradata, используя набор результатов, и печатает каждую строку в терминале, но неправильно записывает в avro, то есть несколько строк пропадают без причины. Нет шаблона, в котором происходит отбрасывание строки, и я конвертирую каждый тип данных в строку при вставке в файл avro. Я чувствую ошибку в процессе написания Avro с моей стороны, но не могу понять это.
Любая помощь приветствуется.
Вот код.
`
static avroWriter(Schema schema, OutputStream outStream, ResultSet rs) {
final GenericRecord rec = new GenericData.Record(schema)
final DatumWriter<GenericRecord> datumWriter = new GenericDatumWriter<>(schema)
final DataFileWriter<GenericRecord> dataFileWriter = new DataFileWriter<>(datumWriter)
dataFileWriter.create(schema, outStream)
final int nrOfColumns = rs.getMetaData().getColumnCount()
while (rs.next()) {
for (int i = 1; i <= nrOfColumns; i++) {
final Object colValue = rs.getObject(i)
String value
if(colValue == null){
value = "null"
}else{
value = colValue.toString()
}
//println("i :" + i + " value : "+ value)
rec.put(i - 1,value)
}
try {
dataFileWriter.append(rec)
println(rec)
}
catch (IOException e) {
log.error("Record :{} couldn't be read properly", rec, e)
}
}
}
`