w-12
分析如下 HiveQL,生成的 MapReduce 执行程序,map 函数输入是什么?输出是什么,reduce 函数输入是什么?输出是什么?
Page_view 表和 user 表结构与数据示例如下:

map 过程分别对表page_view, user进行map, 输入是原始的行记录,按照userid作为key进行map;为了表示数据来源,添加记录的类型type=<page_view|user>。
map 数据之间进行shuffle, 将两个map的输出merge在一起,形成数据作为reduce的输入。
key = 111:
type=page_view pageid=1 userid=111 time=9:08:01
type=page_view pageid=2 userid=111 time=9:08:13
type=user userid=111 age=25 gender=female
key = 222:
type=page_view pageid=1 userid=222 time=9:08:14
type=user userid=222 age=32 gender=male
在reduce方法中,将同一组数据中不同type的进行组合,输出结果数据
key=111:
pageid=1 age=25
pageid=2 age=25
key=222:
pageid=1 age=32

评论