从 Spark documentation about Scheduling Within an Application 可以了解到:
在给定的 Spark 应用程序(SparkContext 实例)中,如果多个并行作业是从单独的线程提交的,则它们可以同时运行。在本节中,“作业”是指 Spark 操作(例如保存、收集)以及需要运行以评估该操作的任何任务。 Spark 的调度程序是完全线程安全的,并支持此用例以支持为多个请求(例如多个用户的查询)提供服务的应用程序。”
我在 Scala 和 Java 中找不到相同的示例代码。有人可以举例说明如何使用 PySpark 实现吗?
原文由 Meethu Mathew 发布,翻译遵循 CC BY-SA 4.0 许可协议
我遇到了同样的问题,所以我创建了一个独立的小例子。我使用 python 的线程模块创建多个线程并同时提交多个 spark 作业。
请注意,默认情况下,spark 将以先进先出 (FIFO) 的方式运行作业:http: //spark.apache.org/docs/latest/job-scheduling.html#scheduling-within-an-application 。在下面的示例中,我将其更改为 FAIR 调度
输出: