如何使用两个组件构建 key ?这样做的原因是我有一个无向图。如果 A 和 B 通过通信关联(方向无关),则两个节点 A 和 B 之间存在边。此通信有一个数字参数。所以我想实现的是有一个将 A 和 B 组合在一起作为一个集合的 key ,这样 A 到 B 和 B 到 A 的通信就可以被认为是等价的,并且可以被加起来得到统计数据
说:
A B 5
B A 10
键在语义上应该是“A 或 B 在一起”,这样包含 A 和 B 作为键的集合的值应该是 5+10=15。
wordcount 示例将特定单词作为关键字。就我而言,我想将包含两个组件的集合作为关键。在 map 和 reduce 阶段,只要满足 A to B 或 B to A 就求和。
谢谢!
最佳答案
您需要自定义键,具有自己的比较规则。 您可以通过在包含图形链接信息的类上实现 WritableComparable 来实现。 这是示例/解释: https://web.archive.org/web/20130729080313/http://developer.yahoo.com/hadoop/tutorial/module5.html
关于Hadoop MapReduce : Two values as key in Mapper-Reducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10893549/