2017-04-20 8 views
3

내가 생성하기 위해이 브로 shcema브로 스키마 형식의 예외 "레코드"는 브로-도구를 사용하여 정의 된 이름

{ 
    "namespace": "nothing", 
    "name": "myAvroSchema", 
    "type": "record", 
    "fields": [ 
    { 
     "name": "checkInCustomerReference", 
     "type": "string" 
    }, 
    { 
     "name": "customerContacts", 
     "type": "record", 
     "fields": [ 
     { 
      "name": "customerEmail", 
      "type": "array", 
      "items": { 
      "type": "record", 
      "name": "customerEmail_element", 
      "fields": [ 
       { 
       "name": "emailAddress", 
       "type": "string" 
       }, 
       { 
       "name": "typeOfEmail", 
       "type": "string" 
       } 
      ] 
      } 
     }, 
     { 
      "name": "customerPhone", 
      "type": "array", 
      "items": { 
      "type": "record", 
      "name": "customerPhone_element", 
      "fields": [ 
       { 
       "name": "fullContactNumber", 
       "type": "string" 
       }, 
       { 
       "name": "ISDCode", 
       "type": "string" 
       } 
      ] 
      } 
     }, 
     { 
      "name": "DonotAskIndicator", 
      "type": "record", 
      "fields": [ 
      { 
       "name": "donotAskDetails", 
       "type": "string" 
      } 
      ] 
     } 
     ] 
    }, 
    { 
     "name": "somethingElseToCheck", 
     "type": "string" 
    } 
    ] 
} 

를 사용하기 위해 노력하고있어 및 브로 파일이 아닙니다 스레드 "주요"org.apache.avro.SchemaParseException에서

예외 : "레코드"는 데이 아니다 그러나 나는 다음과 같은 오류 메시지가 무엇입니까 벌금을 부과 한 이름. "customerContacts" 필드의 유형은 정의 된 이름이거나 { "type": ...} 표현식이어야합니다.

레코드가 정의 된 이름으로 식별되지 않는 이유는 누구에게 말해 줄 수 있습니까?

답변

2

는 "customerContacts"필드의 유형은 정의 된 이름 또는이어야 { "유형": ...} 표현

아무튼 당신은 여기 awser (예)를 찾을 수 있습니다 중첩 된 레코드를 올바르게 정의하는 것처럼 보이지 않습니다. 나는 당신의 스키마를 재현하여 이것을 가지고 시험해 보았습니다.

{ 
    "type":"record", 
    "name":"myAvroSchema", 
    "namespace":"nothing", 
    "fields":[ 
     { 
      "name":"checkInCustomerReference", 
      "type":"string" 
     }, 
     { 
      "name":"customerContacts", 
      "type":{ 
       "type":"record", 
       "name":"customerContacts", 
       "namespace":"nothing", 
       "fields":[ 
        { 
         "name":"customerEmail", 
         "type":{ 
          "type":"array", 
          "items":{ 
           "type":"record", 
           "name":"customerEmail", 
           "namespace":"nothing", 
           "fields":[ 
            { 
             "name":"emailAddress", 
             "type":"string" 
            }, 
            { 
             "name":"typeOfEmail", 
             "type":"string" 
            } 
           ] 
          } 
         } 
        }, 
        { 
         "name":"customerPhone", 
         "type":{ 
          "type":"array", 
          "items":{ 
           "type":"record", 
           "name":"customerPhone", 
           "namespace":"nothing", 
           "fields":[ 
            { 
             "name":"fullContactNumber", 
             "type":"string" 
            }, 
            { 
             "name":"ISDCode", 
             "type":"string" 
            } 
           ] 
          } 
         } 
        }, 
        { 
         "name":"DonotAskIndicator", 
         "type":{ 
          "type":"record", 
          "name":"donotAskIndicator", 
          "namespace":"nothing", 
          "fields":[ 
           { 
            "name":"donotAskDetails", 
            "type":"string" 
           } 
          ] 
         } 
        } 
       ] 
      } 
     }, 
     { 
      "name":"somethingElseToCheck", 
      "type":"string" 
     } 
    ] 
}