Хотя я согласен с @cricket_007 с его проблемами, есть способ, которым вы могли бы сделать это с помощью нескольких картографов и редукторов в одном задании MapReduce:
В картостроителе предположим, что x
является исходным значениеми y = 45 - x
.Для каждого x
создайте запись с ключом (min(x, y), max(x, y))
.Так, например, если оригинал 15
, то у вас будет (15, 30)
, а если оригинал 40
, у вас будет (5, 40)
.Меньшее значение всегда должно быть первым, чтобы ключи соответствовали соответствующим образом.Тогда значение записи должно быть x
.
В редукторе, если у вас есть две записи с одним и тем же ключом, но разными значениями, тогда у вас есть совпадение, и вы можете сообщить.Поскольку могут быть дубликаты, вы можете найти несколько записей с одним и тем же ключом и одинаковыми значениями.Их следует игнорировать, поскольку они не соответствуют вашим требованиям.