[
https://issues.apache.org/jira/browse/AVRO-2509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16909473#comment-16909473
]
Brian Lachniet commented on AVRO-2509:
--------------------------------------
Hi [~kt_hk]!
I'm guessing that you posted [this question on Stack
Overflow|https://stackoverflow.com/q/57520685/389899] as well. I've copied my
answer from there:
To default a value to null, you must specify {{"default": null}}. See the table
in the [Complex
Types|http://avro.apache.org/docs/1.9.0/spec.html#schema_complex]section of the
specification for examples values of each type.
{quote}Does it matter what the data type is?
{quote}
*Yes*, the type matters. As you can see in the [Primitive
Types|http://avro.apache.org/docs/1.9.0/spec.html#schema_primitive] section of
the specification, {{null}} is its own type. You may not set an {{int}},
{{string}}, or any other primitive type to {{null}}.
If you want a "nullable" field, use
[Unions|http://avro.apache.org/docs/1.9.0/spec.html#Unions]. For example:
{{{ "type": ["null", "int"], "default": null }}}
This dictates that this data may either be an {{int}} or it may be a {{null}}.
It defaults to {{null}}. When specifying defaults for unions, remember that the
default must match the first type in the union.
From [the specification|http://avro.apache.org/docs/1.9.0/spec.html#Unions]:
{quote}(Note that when a default value is specified for a record field whose
type is a union, the type of the default value must match the first element of
the union. Thus, for unions containing "null", the "null" is usually listed
first, since the default value of such unions is typically null.)
{quote}
> Avro schema default value to null, should it be "null" (with quotes) or null
> (without quotes)?
> ----------------------------------------------------------------------------------------------
>
> Key: AVRO-2509
> URL: https://issues.apache.org/jira/browse/AVRO-2509
> Project: Apache Avro
> Issue Type: Task
> Components: java
> Reporter: KT
> Priority: Trivial
>
> HI,
> I am new to Avro and trying to define a schema. Wondering if I am trying
> to default a value to null, should it be:
> a. "default": null
> b. "default": "null"
> Does it matter what the data type is? like for int then the default will
> be "default": null, but when it's for a string then the default should be
> "default":"null"? or it doesn't matter?
>
> Thanks
> KT
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)