복붙노트

[HADOOP] 값을 사용하여 스파크 결과 내림차순 튜플을 정렬하는 법

HADOOP

값을 사용하여 스파크 결과 내림차순 튜플을 정렬하는 법

나는 스파크와 스칼라에 처음이다. 같은 (내림차순) 내 결과 개수 튜플을 내림차순으로 정렬해야합니다. 나는 아래에 넣었다.

 val results = ratings.countByValue()
 val sortedResults = results.toSeq.sortBy(_._2)

하지만 여전히 작동하지 않습니다. 위의 방법으로 오름차순으로 결과를 정렬합니다. 그러나 나는 그것을 내림차순으로 가질 필요가있다. 아무도 나를 도와주세요.

결과는 아래와 같습니다.

(History, 12100),
(Music, 13200),
(Drama, 143000)

하지만 아래처럼 그것을 표시해야합니다.

(Drama, 143000),
(Music, 13200),
(History, 12100)

감사

해결법

  1. ==============================

    1.거의 완료했습니다! RDD sortBy () 메소드는 기본적으로 요소를 오름차순으로 정렬하므로 내림차순에 대한 추가 매개 변수가 필요합니다.

    거의 완료했습니다! RDD sortBy () 메소드는 기본적으로 요소를 오름차순으로 정렬하므로 내림차순에 대한 추가 매개 변수가 필요합니다.

    val results = ratings.countByValue()
    val sortedRdd = results.sortBy(_._2, false)
    
    //Just to display results from RDD
    println(sortedRdd.collect().toList)
    
  2. ==============================

    2.당신이 사용할 수있는

    당신이 사용할 수있는

    .sortWith(_._2 >_._2)
    

    대부분의 경우 toSeq을 호출하는 것은 좋은 생각이 아닙니다. 왜냐하면 드라이버가이를 메모리에 넣어야하기 때문에 더 큰 데이터 세트를 메모리 부족으로 사용할 수 있기 때문입니다. 나는 이것이 o.k라고 생각한다. 소개하는 스파크.

  3. from https://stackoverflow.com/questions/41918826/how-to-order-my-tuple-of-spark-results-descending-order-using-value by cc-by-sa and MIT license