在Hadoop中处理带有标头的文件

时间:2009-07-09 14:43:34

标签: hadoop

我想在Hadoop中处理很多文件 - 每个文件都有一些标题信息,后面跟着很多记录,每个记录以固定的字节数存储。有什么建议吗?

3 个答案:

答案 0 :(得分:4)

我认为最好的解决方案是编写自定义InputFormat

答案 1 :(得分:1)

有一种解决方案,您可以检查映射器读取的文件行的偏移量。 对于文件中的第一行,它将为零。所以你可以在Map中添加如下行:

public void map(LongWritable key,Text value,Context context)抛出IOException,InterruptedException         {

        if(key.get() > 0)
                       {
                         your mapper code
                       }
              }

因此,它将跳过文件的第一行。

但是,这不是一个好方法,因为这样就会检查文件中每一行的条件。

最好的方法是使用自定义输入格式

答案 2 :(得分:0)

除了编写自定义FileInputFormat之外,您还需要确保该文件不可拆分,以便读者知道如何处理文件中的记录。