2009-12-02 53 views
2

我很新的Hadoop的和我目前正试图加入两个数据源,其中的关键是间隔(比如[日期开始/日期结束])。例如:的Hadoop:间隔,并加入

输入1:

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

输入2:

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

我想找到所有的地方key1的重叠KEY2的记录。 hadoop有可能吗?我在哪里可以找到实施的例子?

谢谢。

+0

皮埃尔,不知道如果你想通了这一点,但任何想法猪是这个? – Jilles 2010-12-08 18:30:30

+0

Biostar提供了一个解决方案:http://biostar.stackexchange.com/questions/8821 – Pierre 2011-06-05 08:13:46

回答

0

我认为所有需要的是一个关键类,其中hashCode()和equals()完成你想要它做的事情。我怀疑你可能遇到一个A重叠的问题(即A.equals(B)== true),B与C重叠,但是C不重叠A.如果你实现了这个equals()方法,你会可能会有奇怪的行为。基本上,您希望执行类似于在Segment Tree(例如,针对间隔(p1.start,p1.end)的所有重叠间隔E)上执行查询的操作,针对p1.start和p1.end执行插入查询)。

但基本上,不,我不知道你的问题的正确答案。但也许"Segment tree" hadoop的查询会让你开始。