如何使用mapreduce帮助处理pdf文件?

时间:2015-03-26 13:48:45

标签: pdf mapreduce

该任务使用hadoop mapreduce解析许多pdf。我认为整个过程应该只在映射器中。从哪儿开始?映射器必须如何看?

1 个答案:

答案 0 :(得分:0)

同意你可以在 Mapper 部分完成解析过程,而 Reducer 部分只需输出结果而无需任何聚合计算。

使用广泛使用的MapReduce框架 Hadoop 作为示例,您需要使用Writable定义自己的数据类型,假设将其命名为MyPdfFile,每个MyPdfFile instance表示PDF文件,它包含输入的PDF文件内容和其他信息。 MyPdfFile应包含将PDF文件内容转换为文本的方法getConvertedText,关于如何通过Java处理PDF文件,请尝试Apache PDFBox

然后Mapper可能看起来像:

class PdfToTxtMapper extends Mapper<Text, MyPdfFile, Text, Text> {
  @Override
  public void map(Text inputKey, PdfFile inputValue, Context context) throws IOException, InterruptedException {
    Text outputKey = new Text(inputKey);
    Text outputVal = inputValue.getConvertedText(inputValue);
    context.write(outputKey, outputVal);
  }
}

希望它有所帮助。