私はApache sparkの新機能ですので、この質問にはうまくいかないかもしれませんが、combinebykey
とaggregatebykey
の違いはありません。combinebykeyとaggregatebykeyの違い
1
A
答えて
0
combineByKey
より一般的にはaggregateByKey
です。実際には、aggregateByKey
,reduceByKey
およびgroupByKey
の実装は、combineByKey
によって実現されます。 aggregateByKey
はreduceByKey
と似ていますが、集計を実行するときに初期値を指定できます。
名前のとおり、aggregateByKey
は、キーの集計、sum、avgなどの集計に適しています。ここでのルールは、マップ側の結合に費やされる余計な計算によって、他のノードと運転手。 func
がこのルールを満たしている場合は、おそらくaggregateByKey
を使用する必要があります。
combineByKey
が一般的です。マップ側の組み合わせを実行するかどうかを柔軟に指定できます。ただし、使用する方がより複雑です。少なくとも、3つの関数、すなわちcreateCombiner
,mergeValue
,mergeCombiners
を実装する必要があります。
1
aggregateByKey
は、最初のアキュムレータ、アキュムレータに値をマージする第1のラムダ関数、2つのアキュムレータをマージする第2のラムダ関数を取ります。
combineByKey
は、より一般的であり、ここでは例として、最初のアキュムレータ
を作成するには、最初のラムダ関数を追加します。
val pairs = sc.parallelize(List(("prova", 1), ("ciao", 2),
("prova", 2), ("ciao", 4),
("prova", 3), ("ciao", 6)))
pairs.aggregateByKey(List[Any]())(
(aggr, value) => aggr ::: (value :: Nil),
(aggr1, aggr2) => aggr1 ::: aggr2
).collect().toMap
pairs.combineByKey(
(value) => List(value),
(aggr: List[Any], value) => aggr ::: (value :: Nil),
(aggr1: List[Any], aggr2: List[Any]) => aggr1 ::: aggr2
).collect().toMap
を
関連する問題
- 1. SparkのReduceByKeyとCombineByKeyの相違点
- 2. AggregateByKeyパーティショニング?
- 3. Pyspark combineByKeyタプルとカウントのリスト
- 4. combineByKeyの使い方は?
- 5. Python Spark combineByKey Average
- 6. 抽象クラスのときにAggregateByKeyがコンパイルされない
- 7. Spark aggregateByKey:キーを使用
- 8. Pythonセットを使用したAggregateBykey
- 9. combineByKey()を使用した場合のエラー
- 10. コールは()combineByKey機能によって
- 11. (Py)Spark combineByKey mergeCombiners出力タイプ!= mergeCombinerValタイプ
- 12. データフレームにcombineByKeyを使用する方法
- 13. pyspark combineByKey(groupByKeyと対照的な)の結果が一致しません
- 14. {!!の違い!!}と{{}}
- 15. 「 '」と「'」の違い
- 16. 違いダウンケースとダウンケースの違い! Rubyで
- 17. Open GL ES - GLenumとGlintの違いとGLintとGLsizeiの違い
- 18. PythonとPandasの違いの相違点
- 19. "!"の違いと "。"オペレータ
- 20. g ++との違い
- 21. "?"の違いと "@"ビジュアルベーシック
- 22. $ @と$の違い! perl
- 23. Kafka - DefaultPartitionerとMessageKeyの違いとカスタムパーティショナーの違い
- 24. タグとロールの違い - タグとロールの違い
- 25. posix_memalignとmmapとの違い
- 26. OAuth2とOmniauthとの違い
- 27. とnewgemとの間違い
- 28. Node.jsとtomcatとの違い
- 29. BroadcastReceiverとインテントとの違い
- 30. 弱いとunsafe_unretainedの違い