写点什么

架构师训练营第十二章作业

用户头像
子豪sirius
关注
发布于: 2020 年 09 月 02 日

分析如下 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);

答:1)由于涉及到两张表,两张表对应两个Map函数。

2)map函数的输入的Key是偏移量,Value是每一行数据

3)page_view表的map函数输出的是Key是uerid,Value是个二元组,其中这个二元组的第一个字段是来自哪张表(假设page_view表为1),第二个字段是pageid

111 | <1,1>

111 | <1,2>

222 | <1,1>

4)user表的map函数输出的Key是userid,Value是个二元组,其中这个二元组的第一个字段是来自哪张表(假设user表为2),第二个字段是age:

111 | <2,25>

222 | <2,32>

5)经过shuffle sorted后,相同key的放在一起进行reduce:

111 | <1,1> 222 | <1,1>

111 | <1,2> 222 | <2,32>

111 | <2,25>

6)进行reduce后,reduce的输入的Key时userid,Value是一个二元组。输出是Key是pageid,Value是age:

111用户的reduce输出

1 | 25

2 | 25

222用户的reduce输出:

1 | 32





用户头像

子豪sirius

关注

还未添加个人签名 2018.05.03 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
作业请添加“极客大学架构师训练营”标签,便于分类
2020 年 09 月 03 日 10:25
回复
没有更多了
架构师训练营第十二章作业