我想在 Hadoop 中处理很多文件——每个文件都有一些头信息,然后是很多记录,每个记录都存储在固定数量的字节中。对此有何建议?
David Rosenberg
问问题
2336 次
3 回答
4
我认为最好的解决方案是编写一个自定义InputFormat
.
于 2009-07-09T15:04:10.990 回答
1
有一种解决方案,您可以检查映射器读取的文件行的偏移量。文件中的第一行为零。因此您可以在 Map 中添加如下行:
public void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException {
if(key.get() > 0)
{
your mapper code
}
}
因此,它将跳过文件的第一行。
但是,这不是一个好方法,因为通过这种方式,将为文件中的每一行检查此条件。
最好的方法是使用您的自定义输入格式
于 2013-03-21T12:11:14.343 回答
0
除了编写自定义 FileInputFormat 之外,您还需要确保文件不可拆分,以便读者知道如何处理文件中的记录。
于 2009-09-20T17:04:42.163 回答