我的Schema.avdl中包含的内容:
array<string> names = null;
现在不是null,而是希望将默认值作为空数组,所以我尝试并失败了:
array<string> names = []; and array<string> names = {};
有人可以告诉我如何将空列表作为默认值吗?
谢谢。
答案 0 :(得分:5)
我不确定这是否直接对您有所帮助,但在avro架构声明(.avsc)中,您可以编写以下内容:
{
"type": "record",
"namespace": "my.avro.schemas",
"name": "Schema",
"fields": [
{"name": "string_arr", "type": {"type": "array", "items": "string"}, "default": []}
]
}
请注意,“default”字段定义是一个空的json数组。使用解析的avro Schema类的Builder将填充“string_arr”字段,默认情况下为空数组。
答案 1 :(得分:2)
array<string> names = [];
适用于Avro 1.8.2。这将在JSON中生成以下字段:
{
"name": "names",
"type": {
"type": "array",
"items": "string"
},
"default": []
}