我需要写一个map reduce程序,从整个hdfs文件中读取avro文件。我的mapper代码输入将是具有不同模式的不同avro文件。在代码的mapper部分,我需要读取文件的整个记录,而不考虑文件模式。有谁能告诉我,我们怎样才能从avro那里读到一整张唱片。提前谢谢。
13z8s7eq1#
总的来说,我认为这是可行的。不确定您想要实现什么,但是假设您想对由相同模式支持的记录做些什么。在Map器中,读取字节并获取模式json。下面是一个如何获取模式的示例:http://www.programcreek.com/java-api-examples/index.php?api=org.apache.avro.generic.genericdatumreader Map器的键是schema json字符串,值是记录(字节)。然后在reducer中,您将拥有所有相同的模式,并且可以使用genericord使用提供的模式反序列化数据,并执行任何您想要的操作。
1条答案
按热度按时间13z8s7eq1#
总的来说,我认为这是可行的。不确定您想要实现什么,但是假设您想对由相同模式支持的记录做些什么。
在Map器中,读取字节并获取模式json。下面是一个如何获取模式的示例:http://www.programcreek.com/java-api-examples/index.php?api=org.apache.avro.generic.genericdatumreader Map器的键是schema json字符串,值是记录(字节)。然后在reducer中,您将拥有所有相同的模式,并且可以使用genericord使用提供的模式反序列化数据,并执行任何您想要的操作。