Spark 狭い依存と広い依存の違いとは?徹底解説
Sparkにおいて、狭窄依存と広依存は異なるRDD間の依存関係を指します。その違いは操作の実行方法とデータの分割方法にあります。
- 狭い依存関係(Narrow Dependency):
狭い依存関係とは、各親RDDパーティションが子RDDの1つのパーティションだけで使用されることを指します。具体的には、1つのRDDの各パーティションが子RDDの1つのパーティションだけで使用される場合、狭い依存関係と呼ばれます。この場合、Sparkは同じノードで親RDDと子RDD間の変換を行うことができ、データのシャッフル操作が不要です。 - ワイド依存(Wide Dependency):
ワイド依存とは、親RDDの各パーティションが子RDDの複数のパーティションによって使用されることを指します。具体的には、あるRDDの各パーティションが子RDDの複数のパーティションによって使用される場合、ワイド依存と呼ばれます。この場合、Sparkはデータをシャッフルして再パーティションする必要があり、正しい結果を計算するために行われます。
要简洁地执行操作,尽量避免宽依赖会提高Spark程序的性能。由于宽依赖需要数据的shuffle操作,所以窄依赖可以更高效地执行操作。