Avro模式允许使用Union类型作为字段类型,从而实现条件字段的定义。Union类型允许将多个类型作为一个字段的可能类型。实际使用时,需要在Union类型中添加一个null类型,以便在该字段无值时可以设置为null。若字段有值,其类型会与Union类型中的某个类型匹配。
代码示例:
{ "type": "record", "name": "user", "fields": [ {"name": "name", "type": "string"}, {"name": "age", "type": "int"}, {"name": "email", "type": ["null", "string"]} ] }
以上代码定义了一个Avro模式,包含三个字段:name(字符串类型)、age(整数类型)和email(可能为null或字符串类型)。若用户没有提供email,则该字段的值为null。否则,其类型为字符串类型。