我必须在 Hadoop 的 Map Reduce 程序中解析 HDFS 中的 PDF 文件。所以我从 HDFS 获取 PDF 文件作为输入拆分,它必须被解析并发送到 Mapper 类。为了实现这个 InputFormat 我已经通过了这个链接。如何将这些输入拆分解析并转换为文本格式?
问问题
8807 次
2 回答
6
在 Hadoop 中处理 PDF 文件可以通过扩展FileInputFormat类来完成。让扩展它的类是 WholeFileInputFormat。在 WholeFileInputFormat 类中,您覆盖 getRecordReader() 方法。现在每个 pdf 都将作为单独的 Input Split接收。然后可以解析这些单独的拆分以提取文本。这个链接给出了一个清楚的例子来理解如何扩展 FileInputFormat。
于 2012-02-25T11:42:49.303 回答
1
这取决于你的分裂。我认为(可能是错误的)您需要将每个 PDF 作为一个整体来解析它。有 Java 库可以做到这一点,谷歌知道它们在哪里。
鉴于此,您需要使用一种方法,在您准备好解析文件时,将文件作为一个整体。假设您想在映射器中执行此操作,您需要一个将整个文件交给映射器的阅读器。您可以编写自己的阅读器来执行此操作,或者可能已经有一个。您可以构建一个阅读器来扫描 PDF 目录并将每个文件的名称作为键传递给映射器,并将内容作为值传递。
于 2012-02-24T15:26:30.793 回答