Week_12 作业

用户头像
golangboy
关注
发布于: 2020 年 12 月 15 日

分析如下 HiveQL,生成的 MapReduce 执行程序,map 函数输入是什么?输出是什么,reduce 函数输入是什么?输出是什么?

INSERT OVERWRITE TABLE pv_users

SELECT pv.pageid, u.age

FROM page_view pv

JOIN user u

ON (pv.userid = u.userid);

答:pv表和user表,都有字段userid。题目的意思是将两张表中userid相同的行进行关联,输出用户关心的pageid和相应的age信息。

在进行MapReduce计算时,key必定是userid,因为数据关联条件是以userid进行判断的。所有map函数的输入Key是userid,相应的Value有两种,一种pv表中的pageid;另一种是user表中的age。为了让mapreduce计算过程相统一,将表信息加入value字段,以向量的方式作为map的value,因此Map的输入对应的Value是<表信息,pageid>或者<表信息,age>。

Map阶段计算完毕后,进行shuffle sort,Map的输出Key为userid,Value是<表信息,pageid>或者<表信息,age>,reduce过程的的输入是以shuffle sort后的数据作为输入,此时输入Key为userid,Value为<表信息,pageid>或者<表信息,age>,输出Value为<pageid,age>

用户头像

golangboy

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论

发布
暂无评论
Week_12 作业