我的映射器有两个产量:
yield (destination,{'origin':origin,'count':count})
yield (origin,{'destination':destination,'count':count})
这给了我类似以下的输出:
('United States', {'origin': 'Romania', 'count': '1'})
('Romania', {'count': '1', 'destination': 'United States'})
('United States', {'origin': 'Ireland', 'count': '264'})
('Ireland', {'count': '264', 'destination': 'United States'})
('United States', {'origin': 'India', 'count': '69'})
('India', {'count': '69', 'destination': 'United States'})
('Egypt', {'origin': 'United States', 'count': '24'})
('United States', {'count': '24', 'destination': 'Egypt'})
('Equatorial Guinea', {'origin': 'United States', 'count': '1'})
('United States', {'count': '1', 'destination': 'Equatorial Guinea'})
('United States', {'origin': 'Singapore', 'count': '25'})
('Singapore', {'count': '25', 'destination': 'United States'})
现在,我需要编写一个reducer,在其中我可以将上述数据分为两组,并使用两个for循环进行迭代。 这样做的想法是找出可以两次跳动的所有可能飞行的总数
例如:
从罗马尼亚到埃及。我们以Romania -> United States and United States -> Egypt. The total possible flights would then be 1*24
据我了解,我需要遍历所有值两次,并在Destination of 1 == origin of another.
直到现在,我认为我需要创建两个组:g1(用于所有基于源的密钥)和g2(用于所有基于目标的密钥)
,然后遍历每个组,找到g1.destination == g2.origin
。
我朝着正确的方向前进吗?如果是这样的话,这样的功能在reducer中会如何?我似乎无法诚实地弄清楚该如何编码。