私はいくつかのMLのアルゴリズムを訓練しているスパークプログラムを持っています。私の仕事の最終段階を生成するコードは(Kotlinに)次のようになります。私の余分なスパークの仕事はどこから来ますか
val runConfigs = buildOptionsCrossProduct(opts)
log.info("Will run {} different configurations.", runConfigs.size)
val runConfigsRdd: JavaRDD<RunConfiguration> = sc.parallelize(runConfigs)
// Create an RDD mapping window size to the score for that window size.
val accuracyRdd = runConfigsRdd.mapToPair { runConfig: RunConfiguration ->
runSingleOptionSet(runConfig, opts, trainingBroadcast, validBroadcast) }
accuracyRdd.saveAsTextFile(opts.output)
runConfigs
は、18項目のリストです。
17/02/06午後07時23分20秒INFOのSparkJob:18の異なる構成を実行しますコンフィグはショーが生成された直後にログ行。
パーティションごとの段階ごとに最大1つのタスク(少なくとも、それが私の理解だ)があるべきように私は、で最も 18タスクを期待したいです。
それらのすべてが、18が空の状態で生成された80の出力ファイルは実際にはあります。しかし、歴史サーバーは、非常に迅速に完了し、驚くべきことに、何も出力されませんほとんどがタスクを報告します。私の質問は、この段階で他の80 - 18 = 62の仕事は何ですか、なぜ彼らは生成されるのですか?