Skip to content


Main is the standalone application that is launched from spark-class shell script.

Launching Application

void main(
  String[] argsArray)


main requires that at least the class name (className) is given as the first argument in the given argsArray.

For org.apache.spark.deploy.SparkSubmit class name, main creates a SparkSubmitCommandBuilder and builds a command (with the SparkSubmitCommandBuilder).

Otherwise, main creates a SparkClassCommandBuilder and builds a command (with the SparkClassCommandBuilder).

Class Name AbstractCommandBuilder
org.apache.spark.deploy.SparkSubmit SparkSubmitCommandBuilder
anything else SparkClassCommandBuilder

In the end, main prepareWindowsCommand or prepareBashCommand based on the operating system it runs on, MS Windows or non-Windows, respectively.

Building Command

List<String> buildCommand(
  AbstractCommandBuilder builder,
  Map<String, String> env,
  boolean printLaunchCommand)

buildCommand requests the given AbstractCommandBuilder to build a command.

With printLaunchCommand enabled, buildCommand prints out the command to standard error:

Spark Command: [cmd]


printLaunchCommand is controlled by SPARK_PRINT_LAUNCH_COMMAND environment variable.