我有一个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
答案 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));
}