avro-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lurga" <lurga....@gmail.com>
Subject Question on writing/reading file with different schema
Date Tue, 13 Apr 2010 01:13:45 GMT
I create a "Person" record (3 fields: first,last,age), and an "Extract" record (2 fields:
first,last). Then I use "Person" to write some object to a file. When I use "Extract" to read
data from the file, I got an exception: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
It seems like GenericDatumReader.readRecord won't skip the last fields. How can I read the
data corretly?

My code is below:
public void browseName() throws IOException {
  List<Field> fields = new ArrayList<Field>();
  fields.add(new Field("First", Schema.create(Type.STRING), null, null));
  fields.add(new Field("Last", Schema.create(Type.STRING), null, null)); 
  Schema extractSchema = Schema.createRecord(fields);
  DataFileReader<Record> reader = new DataFileReader<Record>(new File(
    fileName), new GenericDatumReader<Record>(extractSchema));
  try {
    while (reader.hasNext()) {
      Record person = reader.next();
      System.out.print(person.get("First").toString() + " " + person.get("Last").toString()
+ "\t");
  } finally {




View raw message