2017-01-29 9 views
4

私はスパークとスカラの新機能です。私は、(コース、カウント)のような結果カウントタプルを降順に並べ替える必要があります。私は以下のように置く。スパーク結果のタプルを値を使って降順で注文する方法

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

しかし、まだ動作していない。上記の方法では、結果を昇順でソートします。しかし、私は降順でそれを持っている必要があります。誰でも助けてくれますか?

結果は

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

ようなものだ。しかし、私は

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

おかげ

答えて

3

ほとんど完了しました。昇順の追加パラメータをRDDsortBy() methodとして追加する必要があります。の要素を昇順で並べ替えます()。

val results = ratings.countByValue() 
val sortedRdd = results.sortBy(_._2, false) 

//Just to display results from RDD 
println(sortedRdd.collect().toList) 
+1

@Dileeもしあなたがmrsrinivasがそれをどのように置いたらどうすればいいですか...あなたは分散コレクションを持つことの利点私はちょうど質問のスカラー部分に集中しているので、私の答えは完全にこれが欠けている:) –

0

の下にあなたが時間の

.sortWith(_._2 >_._2) 

ほとんどを使用することができますようにそれを表示する必要がありますtoSeqを呼び出すことはgではありませんドライバはこれをメモリに入れておく必要があり、大きなデータセットではメモリが足りなくなる可能性があるためです。私はこれがo.kだと思います。イントロが発火する。

+0

これは機能します。ありがとう。あなたは何を意味するのかを私に説明してもらえますか(_ 2 _> _ 2)。それでも私はどのように動作するのですか? – Dilee

+0

これは、項目を指定した関数と比較することによって、コレクションをソートします。これは、[(x、y)=> x> y]の方がより短い表記です。これは_> _と同じで、タプルの2番目の要素で比較したい場合は、_._ 2> _._ 2が得られますあなたも) - このスカラーの魔法に慣れるまでには、しばらく時間がかかりました:) –

関連する問題