我有一个与Cassandra数据库进行交互的Django应用程序,我想尝试使用Apache Spark在该数据库上运行操作。我对Django和Cassandra有一定的经验,但是我是Apache Spark的新手。

我知道要首先与Spark集群进行交互,我需要创建一个SparkContext,如下所示:

from pyspark import SparkContext, SparkConf

conf = SparkConf().setAppName(appName).setMaster(master)
sc = SparkContext(conf=conf)

我的问题是:我应该如何看待这种情况?我应该在应用程序启动时实例化它,并使其在执行过程中运行吗?还是应该在集群中运行某个操作之前每次启动一个SparkContext,然后在操作完成时将其杀死?

先感谢您。

最佳答案

在过去的几天里,我一直在努力,因为没有人回答,因此我将发布我的方法。

显然,创建SparkContext会产生一些开销,因此在每次操作后停止上下文并不是一个好主意。

而且,显然,在应用程序运行时让上下文继续存在也没有任何不足。

因此,我的方法是将SparkContext视为数据库连接,我创建了一个单例,该单例在应用程序开始运行时实例化上下文,并在需要时使用它。

我希望这对某人有帮助,并且我愿意就如何处理此问题提出新的建议,但我还是Apache Spark的新手。

关于python - 如何在Django中管理Apache Spark上下文?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39373608/

10-12 22:57