次のコードでアプリケーションを実行しています。3 つあるのに 1 つのエグゼキュータしか使用されていない理由がわかりません。範囲を広げようとすると、ジョブが失敗し、タスク マネージャがエグゼキュータを失います。要約すると、シャッフル書き込みの値が表示されますが、シャッフル読み取りは 0 です (おそらく、すべてのデータが 1 つのノードにあり、ジョブを完了するためにシャッフル読み取りが発生する必要がないためです)。
val rdd: RDD[(Int, Int)] = sc.parallelize((1 to 10000000).map(k => (k -> 1)).toSeq)
val rdd2= rdd.sortByKeyWithPartition(partitioner = partitioner)
val sorted = rdd2.map((_._1))
val count_sorted = sorted.collect()
編集:エグゼキュータとドライバのメモリとコアを増やしました。また、executor の数を 4 から 1 に変更しました。これが役に立ったようです。各ノードでシャッフルの読み取り/書き込みが表示されるようになりました。