如果您使用Spark版本> 1.4然后您可以使用
SparkLauncher来运行您的应用程序.
import org.apache.spark.launcher.SparkLauncher;
public class MyLauncher {
public static void main(String[] args) throws Exception {
Process spark = new SparkLauncher()
.setAppResource("/my/app.jar")
.setMainClass("my.spark.app.Main")
.setMaster("local")
.setConf(SparkLauncher.DRIVER_MEMORY, "2g")
.launch();
spark.waitFor();
}
}
为了使它工作,你应该给它一个jar文件.由于您希望运行SparkSQL查询,因此您可以将其打包在单个jar文件中,或者您可以将jar作为要执行的查询的参数.
需要注意的是,每次要执行查询时都必须启动SparkContext.如果你不介意等待它,那就没关系了.但是如果时间是一件大事,那么我建议你写一个单独的服务,它会让spark上下文一直在运行,你的应用程序会调用它.