2016-05-21 2 views
-1

私は、書式:(日付、都市)のRDDを持っています。そして、内部のデータは、このようなものです:各キーのpythonの最も重複した値

day1, city1 
day1, city2 
day1, city2 
day2, city1 
[...] 

私はつまり、私は次の結果を必要とし、それぞれの日で最も「繰り返し」の街を取得する必要があります。

day1, city2 
day2, city1 
day3, ... 

あなたはどのように私を助けることができますPythonでやる?

私は、単純な語数のようにそれを実行しようとしました:

rdd.map(lambda x: (x[0], [1]. \ 
map(lambda y:y,1). \ 
reduceByKey(lambda a,b: a+b). \ 
takeOrdered(1, lambda s:-1*s[1]))).collect() 

しかし、もちろん、それは...事前に

おかげで動作しません。

+2

は簡単にする必要があります。あなたは試したことをあなたの質問に記入してください。 –

+0

あなたのコメントのためにcricket_007に感謝し、質問が正しく提起されなかった場合はお詫び申し上げます。 – IGN

答えて

0

それはちょうど修正WORDCOUNTです:あなたがSQLを知っていれば

rdd.map(lambda x: (x, 1)) \ 
    .reduceByKey(lambda x, y: x + y) \ 
    .map(lambda ((day, city), count): (day, (city, count))) \ 
    .reduceByKey(lambda x, y: max(x, y, key=lambda x: x[1])) 
+0

ありがとう!それは完全に動作します、それはまさに私が必要なものです:) – IGN

関連する問題