如何解决Hadoop Map Reduce 倒排索引检索行号
我正在尝试使用 Hadoop Map Reduce 构建倒排索引搜索,作为输入文本文件给出,并尝试实现以下输出:word: (file#1,line#1,line#2,.... ) (file#4,...) ...)
解决方法
经过几个小时的研究,我在网上找到了解决方案:
https://examples.javacodegeeks.com/enterprise-java/apache-hadoop/apache-hadoop-recordreader-example/。
需要一个自定义的 RecordReader
类,以及一个自定义的 FileInputFileFormat
,以便在通过 map 方法完成拆分时将行号设置为键。在 RecordReader
实现中,可以声明自定义字段,并且可以完全管理输入文件的读取。
在这种情况下,例如在 int
自定义实现中添加一个名为 lineNumber
的新 RecordReader
字段就足够了,并在读取一行时增加它(nextKeyValue()
方法)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。