Файл содержит идентификаторы пользователей в формате
1 2
1 3
2 1
2 3
3 2
Каждый пользователь любит друг друга, если он взаимный. Выше я хочу вернуть пару 1,2 и 2,3. (1 лайков 2 и 2 лайков 1 et c.) Я написал псевдокод, но не уверен, работает ли он. Считает ли, подсчитывает ли пары независимо от того, 2,3 или 3,2? Может быть, есть лучший способ реализовать.
map (long k, string v) {
string[] lines = parse v into lines;
for each line in lines:
k1 = new Pair(line[0], line[1]);
long v1 = 1;
output(k2, v2);
}
reduce (string k1, long[] v1) {
string k2 = k1;
long v2 = 0;
for each count in v2:
v2 += count;
if (v2 == 2)
output(k2, v2);
}