2017-02-13 4 views
2

私はAvro 1.8.1を使用しており、次のschema_2を解析しようとしています。あなたは助けてもらえますか?不正な初期文字の取得:スキーマの解析中

val schema: Schema = new Schema.Parser().parse(StrSchema) 

I am getting following exception. 
Exception in thread "main" org.apache.avro.SchemaParseException: Illegal initial character: {"type":"record","name":"WS_MESSAGES","fields":[{"name":"message_id","type":"string"},{"name":"action","type":"string"},{"name":"status","type":"string"},{"name":"request","type":"string"},{"name":"response","type":"string"}]} 

at org.apache.avro.Schema.validateName(Schema.java:1079) 
     at org.apache.avro.Schema.access$200(Schema.java:79) 
     at org.apache.avro.Schema$Name.<init>(Schema.java:436) 
     at org.apache.avro.Schema$Names.get(Schema.java:1043) 
     at org.apache.avro.Schema.parse(Schema.java:1160) 
     at org.apache.avro.Schema$Parser.parse(Schema.java:965) 
     at org.apache.avro.Schema$Parser.parse(Schema.java:953) 
     at main.scala.SampleStreaming$.main(SampleStreaming.scala:42) 
     at main.scala.SampleStreaming.main(SampleStreaming.scala) 

Schema_2:

"{\"type\":\"record\",\"name\":\"WS_MESSAGES\",\"fields\":[{\"name\":\"message_id\",\"type\":\"string\"},{\"name\":\"action\",\"type\":\"string\"},{\"name\":\"status\",\"type\":\"string\"},{\"name\":\"request\",\"type\":\"string\"},{\"name\":\"response\",\"type\":\"string\"}]}" 

私は最初に、次のschema_1を解析しようとしているが、別のエラーを得た後、上記schema_2を作るために、文字列を操作します。

Exception in thread "main" org.apache.avro.SchemaParseException: No type: {"schema":"{\"type\":\"record\",\"name\":\"WS_MESSAGES\",\"fields\":[{\"name\":\"message_id\",\"type\":\"string\"},{\"name\":\"action\",\"type\":\"string\"},{\"name\":\"status\",\"type\":\"string\"},{\"name\":\"request\",\"type\":\"string\"},{\"name\":\"response\",\"type\":\"string\"}],\"connect.name\":\"WS_MESSAGES\"}"} 
     at org.apache.avro.Schema.getRequiredText(Schema.java:1305) 
     at org.apache.avro.Schema.parse(Schema.java:1166) 

Schema_1: 

    {"schema":"{\"type\":\"record\",\"name\":\"WS_MESSAGES\",\"fields\":[{\"name\":\"message_id\",\"type\":\"string\"},{\"name\":\"action\",\"type\":\"string\"},{\"name\":\"status\",\"type\":\"string\"},{\"name\":\"request\",\"type\":\"string\"},{\"name\":\"response\",\"type\":\"string\"}],\"connect.name\":\"WS_MESSAGES\"}"} 

Thanks, 
Amritendu 

答えて

2

私は、問題は、名前フィールド(connect.name)にドット(。)を使用していると思います。許可されていない見てくださいNames Avro

関連する問題