Day 1314:架构师训练营作业(w12)

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

INSERT OVERWRITE TABLE user
SELECT pv.pageid, u.age
FROM page_view pv
JOIN user u
ON (pv.userid = u.userid);
image.png

map函数输入的是两张表每行数据,假设page_view为表1,user为表2。
表page_view的map输出的是uid,<1, pageid>,其中1为page_view的标记。具体结果就是:
111, <1, 1>
111, <1, 2>
222, <1, 1>
表user输出的是uid,<2, age>,其中2为user的标记。reduce输出的是uid,输出的是pageid, age。具体结果就是:
111, <2, 25>
222, <2, 32>
然后再进行shuffle sort之后,Reduce的输入为:
111, <1, 1>
111, <1, 2>
111, <2, 25>

222, <1, 1>
222, <2, 32>
最后Reduce的输出为:
1, 25
2, 25

1, 32

你可能感兴趣的:(Day 1314:架构师训练营作业(w12))