2016-12-07 4 views
0

.reduce(max)を使用すると、RDD全体で最大の鍵が得られます。私はこの削減がすべてのパーティションで動作し、各パーティションによって送信されたアイテムを減らすことを知っています。しかし、どのようにして各パーティションの最大の鍵を取り戻すことができますか? .mapPartitions()の関数を記述しますか?各スパークパーティションの最大のキーを取得するには?

答えて

2

次のことが可能です。

rdd.mapParitions(iter => Iterator(iter.reduce(Math.max))) 

または

rdd.mapPartitions(lambda iter: [max(iter)]) 

DStream.trasformでこれを使用してストリーミングで。

+0

ありがとうございます。私は別の質問があります。 3つの最大のキーがあり、それらのキーが等しい場合、rdd.mapPartitions(lambda iter:[max(iter)])は1を返すだけです。 –

関連する問題