据Spark文档了解,关于Scheduling Within an Application:
Inside a given Spark application (SparkContext instance), multiple parallel jobs can run simultaneously if they were submitted from separate threads. By “job”, in this section, we mean a Spark action (e.g. save, collect) and any tasks that need to run to evaluate that action. Spark’s scheduler is fully thread-safe and supports this use case to enable applications that serve multiple requests (e.g. queries for multiple users)."
在Scala和Java中,我几乎找不到相同的示例代码。 有人能举例说明如何使用PySpark实现这一点吗?
我遇到了同样的问题,所以我创建了一个小型的独立示例。我使用python的线程模块创建多个线程,并同时提交多个spark作业。
请注意,在默认情况下,spark将在先进先出(FIFO):http://spark.apache.org/docs/latest/job-scheduling.html#scheduling-within-an-application中运行作业。在下面的示例中,我将其更改为公平调度
输出:
今天,我也是这么问我的。多处理模块提供一个
ThreadPool
,它为您生成几个线程,从而并行运行作业。首先实例化函数,然后创建池,然后在要迭代的范围内map
。在我的例子中,我计算了不同中心数(超参数调整)的WSSSE数,得到一个“好的”k均值聚类。。。就像在MLSpark documentation中描述的那样。无需进一步解释,以下是我的IPython工作表中的一些单元格:
c U点是12维阵列:
在下面,对于每个
i
,我计算这个WSSSE值并将其作为元组返回:下面开始有趣的部分:
运行它:
给出:
相关问题 更多 >
编程相关推荐