2016-06-06 5 views
1

에서 튜플의리스트를 정렬 내가 튜플 키의 세트를 가지고, 다음과 같이 값 쌍 : 나는 튜플의 두 번째 항목의 순서로 정렬 할Pyspark

X=[(('cat','mouse'),1),(('dog','rat'),20),(('hamster','skittles),67)] 

. Pythonically 내가 사용하는 것 :

sorted(X, key=lambda tup:tup[1]) 
나는 또한 가장 높은 값으로 값 쌍, 다시 pythonically이 간단 할 것 키를 얻으려면

:

max_X=max(x[1] for x in X) 
max_tuple=[x for x in X if x[1]==max_X 

그러나 나는 방법을 모른다 이것을 불꽃 놀이로 바꾸십시오.

답변

1
X.max(lambda x: x[1]) 

당신은 당신이 어쨌든 RDD를 정렬해야하는 경우 빠른 아마 다른 방법을 수행도 할 수있다. 그러나 RDD를 정렬 할 필요가 없다면 정렬 속도가 느려집니다. 정렬이 최대 값을 찾는 것보다 시간이 오래 걸릴 것입니다 (따라서 진공 상태에서는 max 함수를 사용하십시오).

X.sortBy(lambda x: x[1], False).first() 

이것은 당신이 이전과 같이 분류되지만, False을 추가하면 내림차순으로 정렬합니다. 그러면 가장 큰 것이 첫 번째 것입니다.

+0

감사합니다. 어떤 이유로 최대 기능을 찾을 수 없습니다. – laila

0

게시 이후 2 분 안에 나타납니다!

X.sortBy(lambda x:x[1]).collect() 
+0

하지만 아직 최대 기능을 알아 내야합니다. – laila