gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:58 25 4
gpt4 key购买 nike


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

    SparkConf conf = new SparkConf().setAppName("Simple_App");
JavaSparkContext sc = new JavaSparkContext(conf);

JavaRDD<String> file1 = sc.textFile("/path/to/test_doc1");
JavaRDD<String> 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<Long> future1 = executorService.submit(new Callable<Long>() {
@Override
public Long call() throws Exception {
JavaRDD<String> file1 = sc.textFile("/path/to/test_doc1");
return file1.count();
}
});
// Start thread 2
Future<Long> future2 = executorService.submit(new Callable<Long>() {
@Override
public Long call() throws Exception {
JavaRDD<String> 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());

关于java - 如何使用单个 Spark 上下文在 Apache Spark 中运行并发作业(操作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35099463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com