城市人口差异



我有一个输入文件

 Chicago 500
 NewWork 200
 California 100

我需要第二列的差异作为每个城市与其他的输出

 Chicago Newyork 300
 Chicago California 100
 Newyork Chicago -300
 Newyork California 100
 California Chicago -400
 California Newyork -100

我尝试了很多,但都没能找出在地图中实现reduce的准确和正确的方法。请给我一些解决方案

这里有一个伪代码。我经常使用Python,所以它看起来更像它。要做到这一点,你必须知道行的总数(即这里的城市(,并在运行作业之前将其用于N。

map(dummy, line):
  city, pop = line.split()
  for idx in 1:N
     emit(idx, (city, pop))
reduce(idx, city_data):
  city_data.sort() # sort by city to ensure indices are consistent
  city, pop = city_data[idx]
  for i in 1:N
     if idx != i:
        c, p = city_data[i]
        dist = pop - p 
        emit(city, (c, dist))

相关内容

  • 没有找到相关文章

最新更新