Avro-deserialization-using-parsers
提供:Dev Guides
AVRO-パーサーを使用した逆シリアル化
前述のように、スキーマに対応するクラスを生成するか、パーサーライブラリを使用して、Avroスキーマをプログラムに読み込むことができます。 Avroでは、データは常に対応するスキーマとともに保存されます。 したがって、シリアル化されたアイテムをコード生成なしでいつでも読み取ることができます。
この章では、パーサーライブラリを使用してスキーマを読み取る方法、およびAvroを使用してデータを*デシリアライズする方法について説明します。
パーサーライブラリを使用した逆シリアル化
シリアル化されたデータは、 mydata.txt ファイルに保存されます。 Avroを使用して、デシリアライズして読み取ることができます。
以下の手順に従って、ファイルからシリアル化されたデータを逆シリアル化します。
ステップ1
まず、ファイルからスキーマを読み取ります。 これを行うには、 Schema.Parser クラスを使用します。 このクラスは、さまざまな形式でスキーマを解析するメソッドを提供します。
スキーマが保存されているファイルパスを渡すことにより、 Schema.Parser クラスをインスタンス化します。
ステップ2
ステップ3
ステップ4
- Readerに要素がある場合、* hasNext()*メソッドはブール値を返します .
- DataFileReader の* next()*メソッドは、リーダーにデータを返します。
例–パーサーライブラリを使用した逆シリアル化
次の完全なプログラムは、パーサーライブラリを使用してシリアル化されたデータを逆シリアル化する方法を示しています-
生成されたコードが配置されているディレクトリを参照します。 この場合、それは home/Hadoop/Avro_work/without_code_gen にあります。
上記のプログラムをコピーして、 DeSerialize.java という名前のファイルに保存します。 次のようにコンパイルして実行します-