Hadoop: intervalli e si uniscono
Domanda
Sono molto nuovo a Hadoop e attualmente sto cercando di unire due fonti di dati in cui la chiave è un intervallo (ad esempio [data-begin / data -fine]). Ad esempio:
input1:
20091001-20091002 A
20091011-20091104 B
20080111-20091103 C
(...)
input2:
20090902-20091003 D
20081015-20091204 E
20040011-20050101 F
(...)
Mi piacerebbe trovare tutti i record in cui il key1 sovrappone il key2. E 'possibile con Hadoop? Dove posso trovare un esempio di implementazione?
Grazie.
Soluzione
Una soluzione è stata data su Biostar: http://biostar.stackexchange.com/questions/8821
Altri suggerimenti
Credo tutto ciò che serve è una classe chiave in cui hashCode () e equals () fare quello che vuoi che facciano. Ho il sospetto che si potrebbe riscontrare un problema in cui A si sovrappone B (cioè A.equals (B) == true), B si sovrappone C, ma C non si sovrappone A. Se si implementa un tale metodo Equals (), ti probabilmente ottenere un comportamento strano.
In sostanza, si vuole fare qualcosa di simile a coltellate query su un Segmento Albero (ad esempio per tutti gli intervalli sovrapposti e per un intervallo (p1.start, p1.end), eseguono lancinante query per p1.start e p1.end).
Ma in fondo, no, non so una risposta corretta alla tua domanda. Ma forse una query per "albero di settore" Hadoop ad iniziare.