一.目的
1.避免资源的浪费
2.提高任务执行的效率
3.防止任务未执行完毕,session和线程池已关闭,导致任务失败
二、异常coding:
1)method 1
for (String s : list) {
Dataset<Row> sql = sparkSession.sql(s);
sql.show();
}
sparkSession.close();
System.out.println("=====任务执行完毕====");
2)method 2
//启动多线程
ExecutorService executorService = Executors.newFixedThreadPool(list.size());
for (String s : list) {
executorService.submit(new Runnable() {
@Override
public void run() {
Dataset<Row> sql = sparkSession.sql(s);
sql.show();
}
});
}
//关闭session和线程池
executorService.shutdown();
sparkSession.close();