2016-06-27 8 views
0

은 왜 내가 스키마를 구문 분석하려고 할 때 "message" 브로 스키마 { "namespace": "com.ci.generated", "name": "MessageEnvelope", "type": "record", "fields": [ { "name": "message", "type": { "name": "Message", "type": "record", "fields": [ { "name": "media_type", "type": { "type":"enum", "name":"MediaTypes", "symbols": [ "Text", "Image" ] } }, { "name": "text_record", "type": { "type":"record", "name":"TextRecords", "fields": [ {"name" : "name", "type": "string"} ] } }, { "name": "image_record", "type": { "name":"ImageRecords", "type":"record", "fields": [ { "name" : "url", "type": "string"}, { "name" : "sentiment", "type": { "name" : "ImageSentiments", "type": "enum", "symbols": ["positive", "negetive", "neutral"] }
} ] } }, { "name": "named_media", "type": { "name": "NamedMedia", "type" : "record", "fields": [ {"name": "type", "type":["media_type"]}, {"name": "index", "type": "int"}, {"name": "name", "type":["null","string"]}, {"name": "data", "type":[ "null", "text_record", "image_record" ] } ] }
} ] } } ] }
수없는 내가 알아 내려고 노력하고 있어요 1.7.7

media_type을 사용할 수 없습니다입니다 다음 오류가 발생했습니다 : 스레드 "main"의 예외 org.apache.avro.SchemaParseException : 정의되지 않은 이름 : "media_type" at org.apache.avro.Schema.parse (Schema.java:1162) at org.apache. (Schema.java:1223) (스키마. java : 1203)구문 분석 : InputStream in = ClasName.class.getResourcesAsStream (""); 스키마 sc = new Parser(). 구문 분석 (in)

json 데이터 형식 만 사용하는 경우 완벽하게 작동합니다. 디자인 된 데이터 형식의 값을 정의하는 방법은 무엇입니까 ??

답변

0

데이터를 다음과 같이 변경하면 가능합니다. {"name": "data", "type":[ "null", "TextRecord", "ImageRecords" ] }

관련 문제