3

Hadoop 用に C++ でプログラミングする必要があり、出力値の複雑な構造を扱っています。残念ながら、MapReduce でこの構造を Avro 形式で出力する方法がわかりません。DataFileWriter のようなライターがいくつかあり、私にとってはうまく機能します。しかし、HDFS に関しては、すべてが意味を成すわけではありません。

構造を今どのように出力するか:

IOSerializer serializer;
context.emit(key, serializer.toString(output));

このカスタム toString メソッドは、私が自分で作成したものです (名前については申し訳ありません。私は完全に Java の世界から来ました)。これは、文字列へのカスタム シリアル化にすぎません。ここでは相互運用性が必要で、Avro を使用することにしました。

Avro をファイルに書き込むコードは次のとおりです。

avro::DataFileWriter<fusion_solve::graph> dfw("test.bin", schema);
dfw.write(output);
dfw.close();

私ができるようにしたいのは、次のようなものです。

IOSerializer serializer;
context.emit(serializer.toAvro(key, output));

今のところ、単純な JSON 文字列を出力として取得し、後で変換できることを嬉しく思います。私にとってのもう 1 つのオプションは、Java でカスタム RecordWriter を作成することです。しかし、この場合、JSON とどのタイプの入力データを使用すればよいでしょうか?

4

0 に答える 0