Pergunta

Eu sou muito novo para Hadoop e atualmente estou tentando juntar duas fontes de dados onde a chave é um Intervalo (digamos [date-begin / data -fim]). Por exemplo:

input1:

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

input2:

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

Eu gostaria de encontrar todos os registros em que o key1 se sobrepõe a key2. É possível com Hadoop? Onde posso encontrar um exemplo de implementação?

Graças.

Foi útil?

Solução

A solução foi dada em Biostar: http://biostar.stackexchange.com/questions/8821

Outras dicas

Eu acho que tudo o que é necessário é uma classe de chave onde hashCode () e equals () fazer o que você quer que eles façam. Eu suspeito que você pode encontrar um problema onde A sobreposições B (ie a.Equals (B) == true), B sobrepõe C, mas C não se sobreponha A. Se você aplicar esse método equals (), você vai provavelmente terá um comportamento estranho.

Basicamente, você quer fazer algo como esfaquear consultas em um Segmento Árvore (ou seja, para todos os intervalos sobrepostos e para um intervalo (p1.start, p1.end), execute esfaquear consultas para p1.start e p1.end).

Mas, basicamente, não, eu não sei a resposta correta para sua pergunta. Mas talvez uma consulta para "árvore Segmento" hadoop vai você começar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top