当使用Avro模式的GenericRecord时,出现"GenericRecord缺少关键键"的错误通常是因为在使用GenericRecord时没有正确设置必需的字段。
以下是一个示例代码,演示了如何创建一个包含必需字段的GenericRecord并进行操作:
import org.apache.avro.Schema;
import org.apache.avro.SchemaBuilder;
import org.apache.avro.generic.GenericData;
import org.apache.avro.generic.GenericRecord;
public class AvroGenericRecordExample {
public static void main(String[] args) {
// 创建Avro模式
Schema schema = SchemaBuilder.builder()
.record("Person")
.fields()
.name("name").type().stringType().noDefault()
.name("age").type().intType().noDefault()
.endRecord();
// 创建GenericRecord并设置必需字段
GenericRecord record = new GenericData.Record(schema);
record.put("name", "John");
record.put("age", 30);
// 在控制台打印字段值
System.out.println("Name: " + record.get("name"));
System.out.println("Age: " + record.get("age"));
}
}
在上面的示例中,我们使用Avro的SchemaBuilder创建了一个包含两个必需字段(name和age)的Avro模式。然后,我们创建了一个GenericRecord对象,并使用put方法设置必需的字段值。最后,我们可以通过get方法获取字段值并将其打印到控制台。
确保在使用GenericRecord时设置所有必需的字段,这样就可以避免出现"GenericRecord缺少关键键"的错误。
上一篇:Avro模式对象递归问题。
下一篇:Avro模式和数组