The idl2schemata tool in avro-tools can help:
[user@host]$ cat test.idl
protocol EmployeeProtocol
{
record Employee {
string name;
long employeeId;
}
record EmployeeWithUnion{
union {null, Employee} optionalEmployee = null;
}
}
[user@host]$ java -jar avro-tools-1.8.2.jar idl2schemata test.idl test
[user@host]$ cat test/EmployeeWithUnion.avsc
{
"type" : "record",
"name" : "EmployeeWithUnion",
"fields" : [ {
"name" : "optionalEmployee",
"type" : [ "null", {
"type" : "record",
"name" : "Employee",
"fields" : [ {
"name" : "name",
"type" : "string"
}, {
"name" : "employeeId",
"type" : "long"
} ]
} ],
"default" : null
} ]
}
On Fri, Oct 19, 2018 at 8:21 PM Jacob Sheck <[email protected]> wrote:
> Can you use a union with null? This would be the IDL exmple.
>
> record RecordConfig {
> ...
> }
>
> union {null, RecordConfig} record = null;
>
> On Fri, Oct 19, 2018 at 2:44 PM Mina Aslani <[email protected]> wrote:
>
>> Hi,
>>
>> I am adding AVRO schema to the kafka messages, however, I would like to
>> know how I can make a field of "type": "record" optional.
>> *Note*: "default":null does not help.
>>
>> Any idea? Can you elaborate the solution/workaround with an example
>> please?
>>
>> Best regards,
>> Mina
>>
>