MapReduce实践——专利引用关系数据集分析(WordCount与倒排索引的应用组合)

数据源

美国专利文献数据

链接:https://pan.baidu.com/s/1CPnKXVoYR8LhZhwp1kIBxQ

提取码:yxh1

--来自百度网盘超级会员V1的分享

实验内容

专利被引列表(Citation data set倒排)

统计某专利都被哪些其他专利引用过。

• 最终输出键值对示例:

–key: cited专利号

–value: “citing专利号1, citing专利号2

 

此题是对倒排索引的应用,需要在倒排索引的代码基础上进行修改,从而实现目的

相比于之前很多文件的输入相比,此题输入文件单一,内部格式单一,在Map阶段需要进行调节,而后来的Reduce操作基本与不变,因此考虑Map函数的修改即可

现在的字符串是字符+','+字符型的因此需要将

字符串按','进行划分,划分后的前者即citing,后者即cited,存入存储器即可

因此关键部分代码为

			Text citing = new Text();
            Text cited = new Text();
            StringTokenizer itr = new StringTokenizer(value.toString(),",");
            for(;itr.hasMoreTokens();)
            {
                if(itr.hasMoreTokens())
                	citing.set(itr.nextToken());
                if(itr.hasMoreTokens())
                	cited.set(itr.nextToken());
                context.write(cited,citing);//将文件名存到容器
            }

完整代码为📎Quote.java

执行结果为

专利被引次数统计

统计某专利被其他专利引用的次数。

• 最终输出键值对示例:

–key: cited专利号

–value: 被引次数

 

此题是对WordCount的应用,需要在WordCount的代码基础上进行修改,从而实现目的

和上题考虑相同,考虑Map函数的修改即可

现在的字符串是字符+','+字符型的因此需要将字符串按','进行划分,划分后的前者即citing,后者即cited,将cited存入存储器,并计数即可

因此关键部分代码为

		StringTokenizer itr = new StringTokenizer(value.toString(),",");
				while (itr.hasMoreTokens()) {
					if(itr.hasMoreTokens())
						cited.set(itr.nextToken());
					if(itr.hasMoreTokens())
						cited.set(itr.nextToken());
					context.write(cited, one);
				}

完整代码为📎QuoteCount.java

执行结果为

posted @ 2021-10-09 00:11  Xiaohanahahah  阅读(400)  评论(0编辑  收藏  举报