在Hadoop中处理带有头的文件

在Hadoop中处理带有头的文件,hadoop,Hadoop,我想在Hadoop中处理很多文件——每个文件都有一些头信息,后面是很多记录,每个记录都以固定的字节数存储。对此有什么建议吗?我认为最好的解决方案是编写一个自定义的 除了编写自定义FileInputFormat外,您还需要确保文件不可拆分,以便读取器知道如何处理文件中的记录。有一种解决方案,您可以检查映射器读取的文件行的偏移量。 文件中的第一行将为零。因此,您可以按如下方式在地图中添加线条: 公共void映射(LongWritable键、文本值、上下文上下文)引发IOException、Inter

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

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

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

有一种解决方案,您可以检查映射器读取的文件行的偏移量。 文件中的第一行将为零。因此,您可以按如下方式在地图中添加线条:

公共void映射(LongWritable键、文本值、上下文上下文)引发IOException、InterruptedException {

        if(key.get() > 0)
                       {
                         your mapper code
                       }
              }
因此,它将跳过文件的第一行

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

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