2016-06-20 8 views
0

ファイルにバイナリ形式のavroメッセージがあります。バイナリ形式のavroメッセージを含むファイルからのJSONスキーマの読み取り/解析*のみ*

のObj^A^D ^Vavro.schemaÞ^ B { "タイプ": "レコード"、 "名前": "REC"、 "名前空間": "NS"、 "フィールド":[{ "名前"" name ":" name ":" type ":[" string "、" null "]}、{" name " "foo_id"、 "タイプ":

W [ "INT"、 "ヌル"]}]} ^Tavro.codec^Lsnappy^@¤²/n¹¼Bù< 9bは>«à_^NI ^私は」ちょうどSCHEMAに興味がありました。このファイルからスキーマを読み込み/解析する方法はありますか?私は現在、スキーマを抽出するためにこのファイルを手作業で解析していますが、avroが標準的な方法を助けてくれることを願っていました。

答えて

1

アブロは、ファイルからスキーマを取得するためのAPIを提供しません:

File file = new File("myFile.avro") 

    FileReader<?> reader = DataFileReader.openReader(file, new GenericDatumReader<>()); 
    Schema schema = reader.getSchema(); 
    System.out.println(schema); 

私はそれがないなら、私に知らせて、「だけスキーマ」のあなたの定義と一致しなければならないことだと思います。

プログラムで行う必要がない場合は、avro-toolsのgetschemaコマンドを使用することもできます。

+0

美しい!ありがとう! – TakeSoUp

0

avro-toolsを使用すると、avroファイルからavroスキーマを取得する最も簡単かつ簡単な方法です。次のコマンドを使用してください:

avro-tools getchema myfile.avro > myfile.avsc 
関連する問題