无论架构如何,都可以在map中读取avro文件记录

时间:2014-05-20 04:09:12

标签: java hadoop mapreduce avro cloudera-cdh

我需要编写一个map reduce程序,它从整个hdfs文件中读取avro文件。我的映射器代码输入将是具有不同模式的不同avro文件。在我的映射器部分代码中,我需要读取整个文件记录,而不管文件架构如何。任何人都可以告诉我如何从avro中读取整个记录。

提前致谢。

1 个答案:

答案 0 :(得分:0)

一般来说,我认为这是可行的。不确定你想要实现什么,但是假设你想对由同一模式支持的记录做一些事情。

在映射器中,读取字节并获取架构json。以下是如何获取架构的示例:http://www.programcreek.com/java-api-examples/index.php?api=org.apache.avro.generic.GenericDatumReader 映射器的键是schema json字符串,值是记录(字节)。然后在你的reducer中你将所有相同的模式放在一起,你就可以使用GenericRecord使用提供的模式反序列化数据并做你想做的任何事情。

相关问题