2

私はHadoopを初めて使用し、現在、キーが間隔である2つのデータソース([date-begin / date-end]など)を結合しようとしています。例えば:

input1:

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

input2:

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()メソッドを実装すると、次のようになります。おそらく奇妙な振る舞いをします。

基本的に、セグメントツリーでクエリを刺すようなことをしたいとします(つまり、間隔(p1.start、p1.end)のすべての重複する間隔Eに対して、p1.startとp1.endに対して刺すクエリを実行します)。

しかし、基本的に、いいえ、あなたの質問に対する正しい答えはわかりません。ただし、「セグメントツリー」Hadoopをクエリすると、開始できる可能性があります。

于 2009-12-02T10:56:01.683 に答える