我有一个与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然后在操作完成时将其终止?
提前谢谢。
答案 0 :(得分:2)
在最后几天我一直在努力,因为没有人回答我会发布我的方法。
显然创建SparkContext会产生一些开销,因此在每次操作后停止上下文都不是一个好主意。
此外,显然,在应用程序运行时让上下文存在时,没有任何垮台。
因此,我的方法是将SparkContext视为数据库连接,我创建了一个单例,在应用程序开始运行时实例化上下文并在需要时使用它。
我希望这可以对某些人有所帮助,我愿意接受有关如何解决这个问题的新建议,我还是Apache Spark的新手。