如何在没有相应的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版本。