如何在Django中管理Apache Spark上下文?

时间:2016-09-07 15:13:14

标签: python django apache-spark

我有一个与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然后在操作完成时将其终止?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

在最后几天我一直在努力,因为没有人回答我会发布我的方法。

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

此外,显然,在应用程序运行时让上下文存在时,没有任何垮台。

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

我希望这可以对某些人有所帮助,我愿意接受有关如何解决这个问题的新建议,我还是Apache Spark的新手。