SparkContext 是什么?

  1. 驱动程序使用SparkContext与集群进行连接和通信,它可以帮助执行Spark任务,并与资源管理器(如YARN 或Mesos)进行协调。
  2. 使用SparkContext,可以访问其他上下文,比如SQLContext和HiveContext。
  3. 使用SparkContext,我们可以为Spark作业设置配置参数。

如果您在spark-shell中,那么SparkContext已经为您提供了,并被分配给变量sc。

如果还没有SparkContext,可以先创建一个SparkConf。

//set up the spark configuration
val sparkConf = new SparkConf().setAppName("hirw").setMaster("yarn")
//get SparkContext using the SparkConf
val sc = new SparkContext(sparkConf)

SQLContext 是什么?

SQLContext是通往SparkSQL的入口。下面是如何使用SparkContext创建SQLContext。

// sc is an existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

一旦有了SQLContext,就可以开始处理DataFrame、DataSet等。

HiveContext 是什么?

HiveContext是通往hive入口。

HiveContext具有SQLContext的所有功能。

实际上,如果查看API文档,就会发现HiveContext扩展了SQLContext,这意味着它支持SQLContext支持的功能以及更多(Hive特定的功能)

public class HiveContext extends SQLContext implements Logging

下面是如何使用SparkContext获得HiveContext

// sc is an existing SparkContext.
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)

SparkSession 是什么?

SparkSession是在Spark 2.0中引入的,

它使开发人员可以轻松地使用它,这样我们就不用担心不同的上下文,

并简化了对不同上下文的访问。通过访问SparkSession,我们可以自动访问SparkContext。

下面是如何创建一个SparkSession

val spark = SparkSession
.builder()
.appName("hirw-test")
.config("spark.some.config.option", "some-value")
.getOrCreate()

SparkSession现在是Spark的新入口点,它替换了旧的SQLContext和HiveContext。注意,保留旧的SQLContext和HiveContext是为了向后兼容。

一旦我们访问了SparkSession,我们就可以开始使用DataFrame和Dataset了。

下面是我们如何使用Hive支持创建SparkSession。

val spark = SparkSession
.builder()
.appName("hirw-hive-test")
.config("spark.sql.warehouse.dir", warehouseLocation)
.enableHiveSupport()
.getOrCreate()

因此,如果您正在使用Spark 2.0或更高版本,建议使用SparkSession。

最新文章

  1. Web(Jsp+ Servlet)开发中如何解决中文乱码问题
  2. phpMyAdmin提示:配置文件权限错误,无法写入!解决方法
  3. 【转】mysql忘记密码(未初始化)
  4. windows下安装coreseek/sphinx
  5. SpringAOP所支持的AspectJ切点指示器
  6. The 15th Zhejiang University Programming Contest
  7. canvas加载gif
  8. POJ 1734
  9. shell条件测试
  10. WebService cxf 接口中获得拦截器参数
  11. html5权威指南:定制input元素
  12. 如何获取path与basePath
  13. BOX
  14. Prometheus监控数据格式学习
  15. c#学习个人总结
  16. element-ui <el-input> 注册blur事件
  17. shiro课程的学习
  18. VueJs大全;vee-validate(一个验证vue插件), bootstrap-vue, axios简介。
  19. Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK. Looked here: C:\Users\Administrator\AppData\Local\Android\sdk\tools\templates\gradle\wrapper
  20. [Spark SQL_1] Spark SQL 配置

热门文章

  1. js设计模式——3.观察者模式
  2. 前端使用vue-i18n做中英文翻译
  3. Python 内置模块:os模块
  4. Linux之mysql-redis-python使用
  5. 剑指offer——56在排序数组中查找数字
  6. C语言——二维数组
  7. eduCF#61 F. Clear the String /// 区间DP 消除连续一段相同字符 全部消完的最少次数
  8. Jmeter+ant
  9. 富文本编辑器 CKeditor 配置使用+上传图片
  10. mysql的下载