我是Avro的新手,正在尝试定义架构。想知道我是否尝试将默认值设置为null,它应该是:
a。 “默认”:空
b。 “ default”:“ null”
数据类型到底有关系吗?像int一样,默认值将为“ default”:null,但是当用于字符串时,默认值应为“ default”:“ null”?还是没关系?
答案 0 :(得分:0)
要将值默认为null,必须指定"default": null
。有关每种类型的示例值,请参见规范的Complex Types部分中的表。
数据类型到底有关系吗?
是,类型很重要。在规范的Primitive Types部分中可以看到,null
是它自己的类型。您不得将int
,string
或任何其他原始类型设置为null
。
如果要使用“可为空”字段,请使用Unions。例如:
{ "type": ["null", "int"], "default": null }
这表明该数据可能是int
,也可能是null
。默认为null
。为联合指定默认值时,请记住默认值必须与联合中的第一种类型匹配。
(请注意,当为类型为联合的记录字段指定默认值时,默认值的类型必须与联合的第一个元素匹配。因此,对于包含“ null”的联合,“ null”通常会首先列出,因为此类联合的默认值通常为null。)