写点什么

架构师训练营 第 12 周作业

用户头像
Lingjun
关注
发布于: 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);

Page_view 表和 user 表结构与数据示例如下:



答:

map 函数输入:

  • key - 数据行在文件系统中的地址偏移量

  • value - 文件中的一行数据,例如:1; 111; 9:08:01



map 函数的输出:

  • key - userid,例如:111

  • value - <table index, page id>,例如:如果是 page_view 表,则是 <1, 1>;如果是 user 表,则是 <2, 25>



reduce 函数的输入:

  • key - userid

  • value - 基于 userid 的 table index 合并的数据集合,例如:userid 为 111 的 key,则有基于 page_view 表的集合 [1, 2],其中 1, 2 为 user 111 浏览过的 pageid, 还有基于 user 表的集合 [25],其中 25 为 user 111 的 age



reduce 函数的输出:

  • pageid 和 age 的组合记录

发布于: 2020 年 09 月 02 日阅读数: 48
用户头像

Lingjun

关注

还未添加个人签名 2018.11.22 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 第 12 周作业