Mapreduce:如何从多次打印的reducer列表中打印单个最大整数?

时间:2017-11-18 20:04:13

标签: python hadoop

我有多个整数列表,看起来像这样。

[0, [199705, 213905, 212829, 13457, 111686, 607393, 872608, 732377, 182538, 787881, 118319, 964795, 166968, 365009, 894771, 613260, 641339, 25337, 34115, 893819, 795572, 685695, 312904, 907582, 871031, 166572, 677524, 579547, 293532, 823144, 475466, 809697, 941561, 691401, 933961, 968512, 533541, 65023, 553086, 644441, 448130, 721938, 404353, 430226, 391164, 805168, 119856, 322218, 657328, 433268]]
[1, [347154, 517159, 919812, 929796, 522835, 759868, 683323, 445616, 940315, 862788, 290265, 955975, 453456, 295093, 884128, 748140, 456509, 449460, 676630, 112028, 891628, 927525, 246077, 249585, 430901, 582551, 889207, 115453, 124599, 985059, 5141, 689344, 396875, 770571, 246748, 643185, 573140, 161546, 734303, 872849, 931835, 793428, 678324, 534229, 928903, 211030, 227042, 669851, 545325, 494357]]

总共有20个这样的列表。我必须在mapreduce范例中打印所有列表中的最大整数。输出应该是一个整数。

这就是我的尝试。

lst = []
def mapper(key, value):
    lst.append(max(value))
    print(key, max(lst))

def reducer(key, list_of_values):
    print(max(list_of_values))

但它打印出目前列表中最大的整数,为20次。这就是我的输出看起来像

968512
985059
988109
988109
999657
999657
999657
999657
999657
999657
999657
999657
999657
999657
999657
999657
999657
999657
999657
999657

如何让它只打印一次列表中的最大数字?

1 个答案:

答案 0 :(得分:0)

使用max()功能一次

print(max(lst))