em đang học lập trình spark, có nhiều chỗ em không hiểu mong mọi người giải thích giúp ạ.
def sort_friends(itr):
result = []
for friend in itr:
result.append(friend)
result.sort(compare_friends)
result = result[:10]
return result
def compare_friends(f1, f2):
result = f2[1] - f1[1]
if result == 0:
result = f1[0] - f2[0]
return result
counts dữ liệu có dạng như thế này:
(0, [(3926, 1), (12570, 2), (3574, 1), (27736, 1)])
(1, [(89, 1), (57, 1), (41457, 1), (5, 2), (77, 1), (63, 1), (27, 1)])
(2, [(64, 1), (36, 1), (8, 1), (94, 1), (34, 1), (6, 1), (12, 1), (92, 1)])
em trích tạm , vì nó nhiều ạ
rec = counts.mapValues(lambda v: sort_friends(v))
kết quả của rec là sắp xếp các cái list trong mỗi tuple theo giá trị 1,2… là số thứ 2 của mỗi cái tuple trong list.