Hadoop MapReduce:将<NullWritable,AvroValue>写入输出文件

时间:2019-07-26 14:07:06

标签: hadoop mapreduce avro

如何在没有相应的AvroKey的情况下将AvroValue写入文件?

说我希望按照以下模式以avro格式序列化数据:{a: String, b: String... }作为MapReduce作业的输出。我可以轻松完成此操作:

job.setOutputFormatClass(AvroKeyValueOutputFormat.class);

有我的减速器输出,例如<AvroKey<CharSequence>, AvroValue<MyClass>>,但是我的输出看起来像这样:

{key: 'k', value: {a: 'a', b: 'b'...}},而我只想要{a: 'a', b: 'b'...}

我尝试使用NullWritable作为输出键格式,并使用AvroValue作为输出值格式,但是输出以纯文本而不是avro书写。

我也尝试使用org.apache.avro.mapred.AvroTextOutputFormat作为文件输出格式,但是遇到编译错误;我认为该类不适合我正在使用的MapReduce版本。

0 个答案:

没有答案