Я пытаюсь реализовать программу уменьшения карты, чтобы найти все записи в наборе данных 2 ГБ, которые близки друг другу (что-то вроде каждой записи и ее соседей должно быть выходом). Близко, я имею в виду эвклидово расстояние. В наборе данных каждая запись имеет координату x и y. Может ли кто-нибудь предложить мне какую-то интуицию для этого. Я знаю, что карта должна излучать каждую запись, а сокращение может просто запустить double для цикла каждой записи в списке, введенном для нее, чтобы найти соседей, но есть ли лучшее решение для этого, так как моя реализация ужасно медленная. Заранее спасибо.Найти все записи рядом с определенной записью, используя Map Уменьшить
map(rid,r):
emit(key,r)
reduce(key,lst=[r1,r2....]):
for elm1 in lst:
for elm2 in lst:
if elm2 is in range of elm1:
process(elm1,elm2)
Функция процесса просто ставит elm2 как сосед или elm1 базу данных mongodb. Каждая запись в моей базе данных mongodb структурирована следующим образом:
Запись 'R' | Список соседей по записи «R»