基于MapReduce的关系代数运算(2)

时间:2023-03-09 23:17:54
基于MapReduce的关系代数运算(2)

1、自然连接

Map函数:对于R中的每个元组(a,b),生成键值对(b,(R,a)),对于S中的每个元组(b,c),生成键值对(b,(S,c))

Reduce函数:每个键值b会与一系列对相关联,这些对要么来自R,要么来自S。基于R和S构建所有对。键b对应的输出结果为(b,[(a1,b,c1),(a2,b,c2)])

即与b关联的元组列表由来自R和S中的具有共同b值的元组组合而成

2、分组和聚合运算

Map函数:对每个元组(a,b,c),生成键值对(a,b)

Reduce函数:每个键a代表一个分组,即对与键a关联的字段B的值表为[b1,b2,...,bn]做聚合操作,输出(a,x)对,x是聚合的结果

如果存在多个分组属性,那么键就是这些属性对应的属性值表组成的一个元组。如果存在多个聚合运算,那么会在给定键的值表上应用Reduce函数进行每个聚合运算,产生包含键以及每个聚合运算的结果