在Hadoop中从管道发出avro格式 我必须在C++中为Hadoop编程,并且处理复杂的输出值结构。 不幸的是,我不知道如何在MapReduce中以Avro格式发出此结构。 有一些像DataFileWriter这样的作家,他们对我来说工作得很好。但就HDF而言,这一切都没有意义

在Hadoop中从管道发出avro格式 我必须在C++中为Hadoop编程,并且处理复杂的输出值结构。 不幸的是,我不知道如何在MapReduce中以Avro格式发出此结构。 有一些像DataFileWriter这样的作家,他们对我来说工作得很好。但就HDF而言,这一切都没有意义,c++,hadoop,pipe,avro,C++,Hadoop,Pipe,Avro,我现在如何发射结构: IOSerializer serializer; context.emit(key, serializer.toString(output)); 这是我自己编写的自定义toString方法(很抱歉,我完全来自Java世界)。 这只是对字符串的自定义序列化。我真的希望这里有一些互操作性,并决定使用Avro 这是将Avro写入文件的代码: avro::DataFileWriter<fusion_solve::graph> dfw("test.bin", schem

我现在如何发射结构:

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();
目前,我很乐意将纯JSON字符串作为输出,以便以后转换。 我的另一个选择是用Java编写自定义RecordWriter。但在这种情况下,我应该使用哪种类型的输入数据,JSON

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