在mapreduce中读取avro文件记录,而不考虑模式



我需要写一个从整个hdfs文件读取avro文件的map reduce程序。我的映射器代码输入将是不同的avro文件具有不同的模式。在我的代码的映射器部分,我需要读取文件的整个记录,而不管文件模式。谁能告诉我怎样才能从avro中读取整个记录?

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

在你的映射器中,读取字节并获得模式json。下面是如何获取模式的示例:http://www.programcreek.com/java-api-examples/index.php?api=org.apache.avro.generic.GenericDatumReader映射器的键将是模式json字符串,值将是记录(字节)。然后,在您的reducer中,您将拥有所有相同的模式在一起,您将能够使用GenericRecord使用提供的模式来反序列化数据,并执行任何您想要的操作。

相关内容

  • 没有找到相关文章

最新更新