2

我对Hadoop很陌生,我目前正在尝试加入两个数据源,其中键是一个间隔(比如 [date-begin/date-end])。例如:

输入1:

20091001-20091002    A
20091011-20091104    B
20080111-20091103    C
(...)

输入2:

20090902-20091003    D
20081015-20091204    E
20040011-20050101    F
(...)

我想找到key1与key2重叠的所有记录。hadoop 可以吗?我在哪里可以找到实施示例?

谢谢。

4

2 回答 2

1

Biostar上给出了解决方案:http: //biostar.stackexchange.com/questions/8821

于 2011-06-05T08:14:48.327 回答
0

我认为所需要的只是一个关键类,其中 hashCode() 和 equals() 做你想让他们做的事情。我怀疑您可能会遇到 A 与 B 重叠的问题(即 A.equals(B) == true),B 与 C 重叠,但 C 不与 A 重叠。如果您实现这样的 equals() 方法,您将可能会出现奇怪的行为。

基本上,您想要在段树上执行类似 stabbing 查询(即,对于一个区间(p1.start,p1.end)的所有重叠间隔 E,执行 p1.start 和 p1.end 的 stabbing 查询)。

但基本上,不,我不知道你的问题的正确答案。但也许对“段树”hadoop的查询会让你开始。

于 2009-12-02T10:56:01.683 回答