hadoop中从管道发出avro格式的c++

kkbh8khc  于 2021-06-03  发布在  Hadoop
关注(0)|答案(0)|浏览(188)

我必须用c++为hadoop编程,我要处理一个复杂的输出值结构。不幸的是,我不知道如何在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字符串作为输出,以便以后转换。我的另一个选择是用java编写定制的recordwriter。但在这种情况下,我应该使用哪种类型的输入数据,json?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题