data_file = sc.parallelize([('u1', 's1', 20), ('u1', 's2', 5), ('u2',
    's3', 5), ('u2', 's2', 10)])
max_by_group = list(data_file.map(lambda x: (x[0], x)).reduceByKey(lambda x1, x2:
    max(x1, x2, key=lambda x: x[-1])).values())
pyspark: groupby, а затем получить максимальное значение каждой группы