私は、個々のパーティションをローカルで並べ替える巨大なRDDを持っています。私はsortByKey操作を調べましたが、シャッフルを呼び出すかどうかはわかりません。 (私はシャッフルを避けたい)Cloudera blogでSparkのsortByKeyはシャッフルを呼び出しますか?
は、sortByKeyがシャッフルを伴うだろうと述べたが、コレクト()が呼び出されるまで何のシャッフルがないようsortByKeyのjavadocから、それが見えます。さ
質問:sortByKey()にはデータのシャッフルが含まれていますか?はいの場合、各RDDパーティションのデータをソートする最も良い方法は何ですか?いいえの場合、collect()はどのようにしてすべてをグローバルにソートしますか?
スパークは遅延評価を使用します。 Sparkが*出力変換*と呼ばれるものに遭遇するまで、変換自体は何の操作も呼び出さず、グラフを具体化して実行を開始させます。 'sortByKey'が実際に何をしているのか見たい場合は、[' BlockStoreShuffleReader.read'](https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache)を見てください。 /spark/shuffle/BlockStoreShuffleReader.scala#L44)メソッド –
@YuvalItzchakov 'sortByKey'は完全に怠惰ではありません。それは熱心に入力rddを処理します。 – zero323
@ zero323本当ですか?私はそれを知らなかった。入力RDDを処理するコードの部分を参照できますか?私が見るのは、ShuffleRDDが割り当てられているだけです。 –