경로 탐색 그래프가 필요한 프로젝트에서 작업 중입니다.상위 10 개 경로 축소 맵 축소
문제 설명 : http://bl.ocks.org/mbostock/4063570 국지적 인 차이는 사이트 탐색이 될 것입니다 : 프로젝트 컨텍스트를 제공하기는 샘플 UI가 유사 할 것으로 예상된다. 내 문제는 백엔드 데이터를 다루는 데있다. 사용자 경로 A-> B-> C-> D-> E 를 들어
내가 미리 계산 데이터 형식은 다음과 같습니다
Origin:Start:End:Level
A A B L1
A B C L2
A C D L3
A D E L4
을 지금, 100 년대와 같은 기록의 수백만 있다고 가정 근원, 나는 그들을 그룹화 할 수 있고, 크기를 집계하고 크기를 기준으로 정렬하고 10을 차지할 수 있습니다. 그래서 각 원점, 시작 및 레벨에 대해 각각 10 개의 레코드가 있어야합니다. 4 레벨의 그래프의 경우 그래프의 주어진 시작 노드에 대해 10 .. 10^2 .. 10^3 .. 10^4를 갖습니다.
실제 문제 : 정렬 후 상위 10 위는 불필요한 L3과 L4를 모두 제거 할 수 없습니다. 주어진 원점에 대해 L1의 끝은 L2의 시작이어야하며, L2의 끝은 L3의 시작이어야합니다. 이런 이유 때문에 많은 L2 레코드가 L1 레코드에 속하지 않은 많은 레코드를 가지고 있으며 레벨 증가로 증가합니다. 그림 : 내가 뭘하려
A A B L1
A B C L2
A F G L2 <-- this comes in top 10 after aggregation, but start is not the end of L1 (B in this case)
: 정렬 및 10을 공격 태도를 보여준 후, 나는 자기가 1 씩 각 레벨 1에서 기록의 수백만에 가입 할 내가 10 레벨이있다. 그것은 계산 상으로 정말로 비쌉니다.
내가 찾고있는 것 : 일반적이고 저렴한 Map-reduce 솔루션. 나는 끓는 맥락에서 그것을 얻을 수 있다면 더 좋다.여기
시간을내어 이해해 주셔서 감사합니다. 실제로 문제가 정확히 발생합니다. 두 번째 맵 축소는 L2에 대해 수행합니다. 나는 연속적인 단계마다 절차를 반복해야한다. L1 맵 필터 L2. L2지도 필터 L3 .... 최대 10 레벨. 이것은 비싸다. – Kunal