情况1:


  spark-submit --class main.Test --master local [4] /path/Test.jar


SparkSession sparkSession = SparkSession.builder()
    .appName("Test")
    .getOrCreate();


情况2:


  java -cp /path/Test.jar com.main.Test


SparkSession sparkSession = SparkSession.builder()
    .appName("Test")
    .master("local[4]")
    .getOrCreate();


这两种方法有什么区别?

最佳答案

没有重大区别。您可能会发现的问题与部署有关。

情况1:您可能需要一个超级/超级瓶子来确保所有内容都在一起。

情况2:在某些情况下,例如AWS EMR(至少直到最近),您不能使用:

SparkSession sparkSession = SparkSession.builder()
    .appName("Test")
    .master(<emr cluster's ip>)
    .getOrCreate();


通常情况1是开发,情况2是部署。但是没有义务。

希望能帮助到你...

关于java - 使用spark-submit和java -cp运行spark应用程序时有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55182518/

10-12 22:56