欢迎来到天天文库
浏览记录
ID:48189697
大小:567.50 KB
页数:11页
时间:2020-01-22
《云计算实验报告书.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、word格式实验项目名称多表关联实验成绩实验者专业班级组别同组者实验日期2016.1.9第一部分:实验分析与设计(可加页)一、实验内容描述(问题域描述)输入两个文件:一个代表工厂表,包含工厂名列和地址编号列;另一个代表地址表,包含地址名列和地址编号列。从输入数据中找出工厂名和地址名的对应关系,输出“工厂名——地址名”表,按工厂名排序输出;数据文件自己设计样例。二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)具体的算法实现如下:publicclassMT
2、join{publicstaticinttime=0;/*在map中先区分输入行属于左表还是右表,然后对两列值进行分割,*保存连接列在key值,剩余列和左右表标志在value中,最后输出*/publicstaticclassMapextendsMapper{//实现map函数publicvoidmap(Objectkey,Textvalue,Contextcontext)throwsIOException,InterruptedException{St
3、ringline=value.toString();//每行文件Stringrelationtype=newString();//左右表标识//输入文件首行,不处理if(line.contains("factoryname")==true
4、
5、line.contains("addressed")==true){return;}//输入的一行预处理文本StringTokenizeritr=newStringTokenizer(line);Stringmapkey=newString();Stringm
6、apvalue=newString();inti=0;while(itr.hasMoreTokens()){//先读取一个单词Stringtoken=itr.nextToken();//判断该地址ID就把存到"values[0]"if(token.charAt(0)>='0'&&token.charAt(0)<='9'){mapkey=token;if(i>0){relationtype="1";}else{relationtype="2";}continue;}....word格式....wor
7、d格式//存工厂名mapvalue+=token+"";i++;}//输出左右表context.write(newText(mapkey),newText(relationtype+"+"+mapvalue));}}/*reduce解析map输出,将value中数据按照左右表分别保存, *然后求出笛卡尔积,并输出。*/publicstaticclassReduceextendsReducer{//实现reduce函数publicvoidreduce(Te
8、xtkey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{//输出表头if(0==time){context.write(newText("factoryname"),newText("addressname"));time++;}intfactorynum=0;String[]factory=newString[10];intaddressnum=0;String[]address=newSt
9、ring[10];Iteratorite=values.iterator();while(ite.hasNext()){Stringrecord=ite.next().toString();intlen=record.length();inti=2;if(0==len){continue;}//取得左右表标识charrelationtype=record.charAt(0);//左表if('1'==relationtype){factory[factorynum]=record.substring
10、(i);factorynum++;}//右表if('2'==relationtype){address[addressnum]=record.substring(i);addressnum++;}}//求笛卡尔积if(0!=factorynum&&0!=addressnum){for(intm=0;m
此文档下载收益归作者所有