Apache spark 为什么Spark会叫;“主要”;而不是使用诸如;SparkJob“是什么;?

Apache spark 为什么Spark会叫;“主要”;而不是使用诸如;SparkJob“是什么;?,apache-spark,Apache Spark,Spark调用指定类上的main方法,该main方法应构造SparkContext或SparkSession。未明确指定的配置(如主URL)将来自命令行上传入的属性或配置文件 我想知道的是:为什么Spark会寻找main方法,而不是使用像SparkJob这样的接口和run方法,该方法将SparkSession作为注入参数?这是在容器中运行的其他形式的托管代码的常见约定;您仍然可以使用main方法在本地模式下构造并注入SparkSession,以进行单元测试 换句话说,为什么不是这样 public

Spark调用指定类上的main方法,该main方法应构造SparkContext或SparkSession。未明确指定的配置(如主URL)将来自命令行上传入的属性或配置文件

我想知道的是:为什么Spark会寻找
main
方法,而不是使用像
SparkJob
这样的接口和
run
方法,该方法将
SparkSession
作为注入参数?这是在容器中运行的其他形式的托管代码的常见约定;您仍然可以使用
main
方法在本地模式下构造并注入
SparkSession
,以进行单元测试

换句话说,为什么不是这样

public class MySparkJob implements SparkJob {
  public void run(SparkSession spark) {
  }
}
与此相反:

public class MySparkJob {
  public static void main(String[] args) {
     SparkSession spark = ...
  }
}