2015-10-16 2 views
1

Я играю с Spark. Я пробовал функцию SortBy в искре с некоторыми образцами данныхКак сортировать более одного значения в pyspark

tmp = [('e', 1), ('b', 2), ('1', 3), ('d', 4), ('2', 5),('a',1)] 
sc.parallelize(tmp).sortBy(lambda (x,y): y).collect() 

Это прекрасно работает и сортирует целое значение в ключевых парах значений. Что требуется для сортировки в соответствии с ключом после сортировки по целому числу?

sc.parallelize(tmp).sortBy(lambda (x,y): y,x).collect() 

говорит, что x не определен.

Желаемая выход

('a', 1),('e',1) ('b', 2), ('1', 3), ('d', 4), ('2', 5) 
+0

да, что сделал трюк. Пожалуйста, укажите это как ответ – mhn

ответ

0

Вы пробовали,

sc.parallelize(tmp).sortBy(lambda (x, y): (y, x)).collect()?

sortBy(lambda (x, y): y, x) - вызов функции с двумя аргументами в Python.