我有几个配置单元表,其中一些是avro格式的,一些是纯文本文件格式的。模式略有不同,但都包含我需要的某些属性。
我计划写一个Map减少作业过程中的数据。问题是,我正在努力避免大量的单独工作,并尽可能简化流程。但愿我只需要写一份工作。
有没有任何例子显示如何读取不同格式的输入在一个Map器。
比如说,我在avro中有一个hdfs路径,我还有另一个hdfs路径,其中的数据是纯文本文件。
// Pseudo code
mapper (Paths){
for(Path in Paths){
if Path.containsAvro() {
... read as avro
} else {
... read as textfile
}
..
}
}
1条答案
按热度按时间gudnpqoy1#
为同一作业使用两个不同的Map器,每种格式一个。Map器可以各自读取自己的数据格式,但必须都写入相同的数据格式。使用这样的方法来配置:
当然,someinputformat和someotherinputformat不是真正的输入格式类。在本例中,两个Map器类将输出具有相同kay/值类型的键/值对,如果您有一个reducer,则将从两个Map器获取数据。