1. ホーム
  2. apache-spark

[解決済み] ShuffledRDD、MapPartitionsRDD、ParallelCollectionRDDの違いは何ですか?

2022-03-04 18:27:39

質問

Spark RDDを生成するために2つの異なる方法を使用しています。そして、Spark UI DAGチャートの結果はかなり異なっています。

どなたか違いを教えてください。私の仕事では、同じような操作で1番目の方が2番目の方より速いのです。

どのように解決するのですか?

1ステージのDAGでは、単にコレクションでRDDを作成し、2番目のRDDでは、partitionByを使ってRDDをシャッフルして、データをクラスタ上でシャッフルしています。そのため、データをシャッフルするため、2ステージ目の処理が遅くなります。

との違い シャッフルRDD , MapPartitionsRDD パラレルコレクションRDD :

シャッフルRDD : ShuffledRDDは、データがクラスタ上でシャッフルされる際に作成されます。データをシャッフルするような変換(join, groupBy, repartitionなど)を行うと、shuffledRDDが作成されます。

MapPartitionsRDD : MapPartitionsRDDは、mapPartition変換を使用するときに作成されます。

パラレルコレクションRDD : ParallelCollectionRDDは、以下のように RDD をコレクション・オブジェクトとする。

もっと詳しく知りたい方は、こちらをご覧ください。 https://github.com/JerryLead/SparkInternals