来自Avro的字段警告消息的默认值无效?

joh*_*ohn 3 java boolean avro

我有一个像这样的avro架构,我已经将其is_userid_present作为布尔值进行decalred ,我想将默认值设为false,因此我提出了以下avro架构.

{
   "type":"record",
   "name":"hello",
   "fields":[
      {
         "name":"u",
         "type":[
            "string",
            "null"
         ]
      },
      {
         "name":"p",
         "type":"string"
      },
      {
         "name":"bu",
         "type":"boolean"
      },
      {
         "name":"is_userid_present",
         "type":"boolean",
         "default":"false"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

但是从Avro代码中,我看到了这条警告信息 -

[WARNING] Avro: Invalid default for field is_userid_present: "false" not a "boolean"
Run Code Online (Sandbox Code Playgroud)

我不确定我在这里做错了什么?如果我有这样的avro架构,那么编写和读取数据会有什么问题吗?

Tod*_*odd 8

根据Avro Docs,如果你指定一个默认的布尔值,你不能String像你拥有它一样.

试试这个...

  {
     "name": "is_userid_present",
     "type": "boolean",
     "default": false
  }
Run Code Online (Sandbox Code Playgroud)