如何使用单个spark上下文在Apache Spark中运行并发作业(操作)

它在Apache Spark文档中说“ 在每个Spark应用程序中,多个”作业“(Spark动作)如果由不同的线程提交,可能会同时运行 ”。 有人可以解释如何实现以下示例代码的并发性吗?

SparkConf conf = new SparkConf().setAppName("Simple_App"); JavaSparkContext sc = new JavaSparkContext(conf); JavaRDD file1 = sc.textFile("/path/to/test_doc1"); JavaRDD file2 = sc.textFile("/path/to/test_doc2"); System.out.println(file1.count()); System.out.println(file2.count()); 

这两个工作是独立的,必须同时运行。
谢谢。

尝试这样的事情:

  final JavaSparkContext sc = new JavaSparkContext("local[2]","Simple_App"); ExecutorService executorService = Executors.newFixedThreadPool(2); // Start thread 1 Future future1 = executorService.submit(new Callable() { @Override public Long call() throws Exception { JavaRDD file1 = sc.textFile("/path/to/test_doc1"); return file1.count(); } }); // Start thread 2 Future future2 = executorService.submit(new Callable() { @Override public Long call() throws Exception { JavaRDD file2 = sc.textFile("/path/to/test_doc2"); return file2.count(); } }); // Wait thread 1 System.out.println("File1:"+future1.get()); // Wait thread 2 System.out.println("File2:"+future2.get());