Hadoop Map Reduce 倒排索引检索行号
Hadoop Map Reduce Inverted Index Retrieve Line Number
我正在尝试使用 Hadoop Map Reduce 构建倒排索引搜索,作为输入文本文件,并尝试实现以下输出:word: (file#1, line#1, line#2, ….) (文件#4, line#1, line#2,…) …)
经过几个小时的研究,我在网上找到了解决方案:
https://examples.javacodegeeks.com/enterprise-java/apache-hadoop/apache-hadoop-recordreader-example/.
需要自定义 RecordReader
class 以及自定义 FileInputFileFormat
,以便在通过 map 方法完成拆分时将行号设置为键。在 RecordReader
实现中,可以声明自定义字段并完全管理输入文件的读取。
在这种情况下,例如在 RecordReader
自定义实现中添加一个名为 lineNumber
的新 int
字段就足够了,并在读取一行时递增它(nextKeyValue()
方法)。
我正在尝试使用 Hadoop Map Reduce 构建倒排索引搜索,作为输入文本文件,并尝试实现以下输出:word: (file#1, line#1, line#2, ….) (文件#4, line#1, line#2,…) …)
经过几个小时的研究,我在网上找到了解决方案:
https://examples.javacodegeeks.com/enterprise-java/apache-hadoop/apache-hadoop-recordreader-example/.
需要自定义 RecordReader
class 以及自定义 FileInputFileFormat
,以便在通过 map 方法完成拆分时将行号设置为键。在 RecordReader
实现中,可以声明自定义字段并完全管理输入文件的读取。
在这种情况下,例如在 RecordReader
自定义实现中添加一个名为 lineNumber
的新 int
字段就足够了,并在读取一行时递增它(nextKeyValue()
方法)。