@Override @SuppressWarnings("unchecked") public byte[] serialize(Row row) { // convert to record final Object record = convertToRecord(schema, row); // write try { arrayOutputStream.reset(); datumWriter.write((GenericRecord) record, encoder); encoder.flush(); return arrayOutputStream.toByteArray(); } catch (IOException e) { throw new RuntimeException("Failed to serialize Row.", e); } }
for (int i = 0; i < fields.size(); i++) { final Schema.Field field = fields.get(i); record.put(field.pos(), convertToRecord(field.schema(), row.getField(i)));