2015-01-06 93 views
2

我有一個這樣的avro模式,其中is_userid_present decalred爲布爾值,我想默認值爲false,所以我想出了以下avro模式。來自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" 
     } 
    ] 
} 

但是從Avro的代碼,我看到這個警告信息 -

[WARNING] Avro: Invalid default for field is_userid_present: "false" not a "boolean" 

我不知道自己做錯了什麼,我在這裏做什麼?如果我有這樣的avro模式,那麼寫入和讀取數據會有什麼問題嗎?

回答

4

根據Avro Docs,如果您指定默認布爾值,則不能像您所擁有的那樣將其作爲String

嘗試......

{ 
    "name": "is_userid_present", 
    "type": "boolean", 
    "default": false 
    }