我正在研究一个需要路径导航图的项目。十大路径缩减地图减少
问题描述: 为了给出项目上下文,示例UI预计看起来类似于:http://bl.ocks.org/mbostock/4063570 。不同之处在于它将用于站点导航。我的问题是在后端处理数据。
对于用户路径A-> B-> C-> D->电子 我预先计算的数据格式如下:
Origin:Start:End:Level
A A B L1
A B C L2
A C D L3
A D E L4
现在,假设我有几百万的记录像这样与100的起源,我可以将它们分组,汇总尺寸并按大小desc排序并进入前10名。因此,对于每个起源,开始和Level,我应该有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