pyspark: grouby et puis obtenir la valeur maximum de chaque groupe

J'aimerais groupe par une valeur et ensuite trouver la valeur max dans chaque groupe à l'aide de PySpark. J'ai le code suivant mais maintenant, je suis un peu coincé sur la façon d'extraire la valeur de max.

# some file contains tuples ('user', 'item', 'occurrences')
data_file = sc.textData('file:///some_file.txt')
# Create the triplet so I index stuff
data_file = data_file.map(lambda l: l.split()).map(lambda l: (l[0], l[1], float(l[2])))
# Group by the user i.e. r[0]
grouped = data_file.groupBy(lambda r: r[0])
# Here is where I am stuck 
group_list = grouped.map(lambda x: (list(x[1]))) #?

Retourne quelque chose comme:

[[(u'u1', u's1', 20), (u'u1', u's2', 5)], [(u'u2', u's3', 5), (u'u2', u's2', 10)]]

Je veux trouver un max 'accident" pour chaque utilisateur. Le résultat final après avoir fait le max entraînerait une EDR qui ressemblait à ceci:

[[(u'u1', u's1', 20)], [(u'u2', u's2', 10)]]

Où seul le max dataset restera pour chacun des utilisateurs dans le fichier. En d'autres termes, je veux changer le valeur de la RDD ne contiennent qu'un seul triplet chaque utilisateurs max occurrences.

InformationsquelleAutor user985030 | 2015-11-15