2017-04-02 12 views
0

私はSpark Streamingで簡単な語数を出しています。どのようにしてn個の最もよく使われる言葉を得るか、言い換えれば、最も高い値を持つ最初のn個の鍵を得るか?Python Spark-Streamingはn個の最大キーを取得します

ここでは、これまでに私のコードです:すでに降順でリストをソート

counts = lines.flatMap(lambda line: line.split(" ")) \ 
.map(lambda word: (word, 1)) \ 
.reduceByKeyAndWindow(lambda a, b: a+b, lambda a, b: a-b, 30, 2) 

output = counts.map(lambda (a, b):(b, a)).transform(lambda rdd: rdd.sortByKey(ascending=False)).map(lambda (a, b):(b, a)) 

が、今私は、トップn個の要素を取る必要があります。 Scalaでrdd.take()を使用し、list.containsに基づいてrddをフィルタリングする方法については、そこにいくつかの例があります。しかし、Pythonにはlist.containsはありません。

答えて

0

Pythonを使用していつでもListを探索できます。あなたはPythonで多くのことを調べていないようです。 Pythonでは、List操作を実行できます。

If value in Mylist: 
#Do your action 

をした場合、あなたはあなたのスライスを使用して、このリストの最初の10個の要素を与えるList

list[:10] 

から要素のN番号を撮りたかったです。

Python List document

この回答に見てくださいpythons-slice-notation

関連する問題