Формат
-D
в основном для Java свойств, а не аргументов CLI.
Spark принимает аргументы через метод main вашего приложения, как и любая другая программа Java / Scala.
object App {
def main(args: Array[String]): Unit = {
val cmd: CommandLine = parseArg(args) // <-- here
val master = cmd.getOptionValue("master", "local[*]") // parse args
val spark = SparkSession.builder()
.appName(App.getClass.getName)
.master(master)
.getOrCreate()
...
}
// Using Apache Commons CLI
private def parseArg(args: Array[String]): CommandLine = {
import org.apache.commons.cli._
val options = new Options
...
}
Тогда spark-submit --jar app.jar --className=my.app.App --master='local[*]'