今天刚刚学习的 spark图计算已经使用aggregateMessages方法替代之前版本的mapReduceTriplets对图聚合的计算。
aggregateMessages具有triptsendTODst的优点,当数据的维数过多时候 ,我们只选择需要处理的数据去进行计算即可。如下图列举一个例子:社交网站中,人与人之间的联系往往是必不可少的,就如现实生活中,我们每个人都有自己的人脉,我们把每个人当做一个独立的vertex,人与人之间靠某种关系链接起来,即使所谓的edge。而人是拥有不同属性的,比如姓名,性别,年龄等,下面的例子我们是计算每个人与其联系的人中最小年龄的人是谁的代码。利用aggregateMessages实现。
因为我们只用到了name和age,因此代码中triplet.srcAttr._1对应我们定义的第一个属性name,triplet.srcAttr._2对应年龄,我们还可以继续triplet.srcAttr._3等 对应其他属性,然后(a,b)分别去比较._2即年龄属性对应的value,然后选取小的一个返回。