在 2.0之前的 Spark版本中, SparkShell会自动创建一个 SparkContext对象sc。 SparkContext与驱动程序(Driver Program)和集群管理器(Cluster Manager)间的关系如图所示。
从图中可以看到, SparkContext起中介的作用,通过它来使用Spark其他的功能。每一个 JVM 都有一个对应的 SparkContext,Driver Program 通过 SparkContext 连接
到集群管理器来实现对集群中任务的控制。Spark 配置参数的设置以及对 SQLContext、 HiveContext 和 StreamingContext 的控制也要通过 SparkContext。
不过在 Spark 2.0 中引入了 SparksSession 对象( spark),运行 Spark shell 则会自动创建 一 个 SparkSession 对象,在输入 spark 时就会发现它已经存在了,SparkConf、 SparkContext 和 SQLContext 都已经被封装在 SparkSession 当中,它为用户提供了一个统一的切入点,同时也提供了各种 DataFrame 和 Dataset 的 API,大大降低了学习 Spark 的难度 。
参考文献:
深度实践Spark机器学习(吴茂贵)