Avro迭代GenericRecord

时间:2015-02-20 11:41:47

标签: java avro

我有一个GenericRecord,想要遍历整个键/值集合。该记录是一个java数据结构,相当于普通的json字符串。例如:

    {"key1":"val1","key2":val2",...} but is quite long. 

问题是,我不知道里面有多少关键,val。

我试过了:

    AvroKeyValue<String,String> kv = new AvroKeyValue<>(record);
    Iterator<String,String> iterator = new AvroKeyValue.Iterator<String,String>(kv);

但这不起作用。

关于它的apache文档在这里: http://avro.apache.org/docs/1.7.0/api/java/org/apache/avro/hadoop/io/AvroKeyValue.Iterator.html

2 个答案:

答案 0 :(得分:0)

您可以使用

获取GenericRecord的字段数
record.getSchema().getFields().size();

答案 1 :(得分:-1)

使用GenericRecord的架构列出可用字段

for (Field field : record.getSchema().getFields()) {
    String fieldKey = field.name();
    System.out.println(fieldKey + " : " + record.get(fieldKey));
}