1.SqlContext 

 SQLContext依赖SparkContext
    功能:支持SparkSQL操作(不依赖Hive)
    SQLContext在一个JVM中默认允许存在多个

    只有SQLContext支持序列化与反序列化。

2.HiveContext

  继承了SQLContext
  HiveContext是SparkSQL读取Hive表数据的入口

  继承自SQLContext,重写了一些方法。

  

  发现sqlContext的类型是HiveContext,所以以前的示例可以直接进行操作hive。

3.SparkSQL

  SparkCore
    入口:SparkContext
    核心抽象:RDD
  SparkSQL
    入口:SQLContext
    核心抽象:DataFrame

4.SparkSQL底层优化

  两张表进行join: 对于表数据小于参数spark.sql.autoBroadcastJoinThreshold(10485760)设置值的时候,将数据广播变量

5.补充

  rdd.foreachPartition(iter => {
    // 如果在这里创建一个SQLContext的话,相当于每个分区都创建一个SQLContext===>可能导致OOM异常(Perm Space)
    // 解决方案:直接在driver中创建一个SQLContext对象,然后直接在各个分区中使用 --> SQLContext支持序列化
  })

036 SQLContext和HiveContext的更多相关文章

  1. SQLContext、HiveContext自定义函数注册

    本文简单介绍两种往SQLContext.HiveContext中注册自定义函数方法. 下边以sqlContext为例,在spark-shell下操作示例: scala> sc res5: org ...

  2. 理解Spark SQL(二)—— SQLContext和HiveContext

    使用Spark SQL,除了使用之前介绍的方法,实际上还可以使用SQLContext或者HiveContext通过编程的方式实现.前者支持SQL语法解析器(SQL-92语法),后者支持SQL语法解析器 ...

  3. SparkSession、SparkContext、SQLContext和HiveContext之间的区别。

    SparkContext 是什么? 驱动程序使用SparkContext与集群进行连接和通信,它可以帮助执行Spark任务,并与资源管理器(如YARN 或Mesos)进行协调. 使用SparkCont ...

  4. Spark教程——(4)Spark-shell调用SQLContext(HiveContext)

    启动Spark-shell: [root@node1 ~]# spark-shell Setting default log level to "WARN". To adjust ...

  5. HiveContext VS SQLContext

    There are two ways to create context in Spark SQL: SqlContext:scala> import org.apache.spark.sql. ...

  6. Spark记录-org.apache.spark.sql.hive.HiveContext与org.apache.spark.sql.SQLContext包api分析

    HiveContext/SQLContext val hiveContext=new HiveContext(new SparkContext(new SparkConf().setAppName(& ...

  7. spark 1.5的hivecontext的问题

    spark升级到1.5,里面的hive版本升级到1.2.1版本,我写了如下的代码 object SQLApp extends App{ val sparkconf = new SparkConf(). ...

  8. Spark:DataFrame批量导入Hbase的两种方式(HFile、Hive)

    Spark处理后的结果数据resultDataFrame可以有多种存储介质,比较常见是存储为文件.关系型数据库,非关系行数据库. 各种方式有各自的特点,对于海量数据而言,如果想要达到实时查询的目的,使 ...

  9. Spark SQL 之 DataFrame

    Spark SQL 之 DataFrame 转载请注明出处:http://www.cnblogs.com/BYRans/ 概述(Overview) Spark SQL是Spark的一个组件,用于结构化 ...

随机推荐

  1. luogu4155/bzoj4444 国旗计划 (倍增)

    成环,把每个区间变成两个然后展开成链 一个人的下一个人肯定是在彼此相交的基础上,右端点越大越好 于是就把它连到相交的.右端点最大的点上,连成一棵树 于是每次只要从某个节点开始,一直在树上跳到覆盖了一个 ...

  2. 【bzoj3160】 万径人踪灭

    http://www.lydsy.com/JudgeOnline/problem.php?id=3160 (题目链接) 题意 给定一个由'a'和'b'构成的字符串,求不连续回文子序列的个数. Solu ...

  3. 【COGS1752】 BOI2007—摩基亚Mokia

    http://cogs.pro/cogs/problem/problem.php?pid=1752 (题目链接) 题意 给出$n*n$的棋盘,单点修改,矩阵查询. Solution 离线以后CDQ分治 ...

  4. Mysql(五) JDBC

    一.JDBC JDBC(Java DataBase Connectivity) 是Java 数据库连接API.    JDBC完成三件事: 与一个数据库连接          向数据库发送SQL语句 ...

  5. POJ 3259 Wormholes(最短路径,求负环)

    POJ 3259 Wormholes(最短路径,求负环) Description While exploring his many farms, Farmer John has discovered ...

  6. CF1027C Minimum Value Rectangle

    之前做的时候没想出来...现在来数学推导一波. 题意:从n个木棒中选出4个拼成一个矩形,使得 (周长)2/面积 最小. 解:设矩形宽a长b.我们要最小化下面这个式子: 去掉常数,不妨设b = a + ...

  7. 详解掩膜mask

    什么是掩膜(mask) 数字图像处理中的掩膜的概念是借鉴于PCB制版的过程,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的 ...

  8. k8s如何管理Pod(rc、rs、deployment)

    是豆荚,可以把容器想像成豆荚里的豆子,把一个或多个关系紧密的豆子包在一起就是豆荚(一个Pod).在k8s中我们不会直接操作容器,而是把容器包装成Pod再进行管理(关于Pod,大家可以参考第十期的分享“ ...

  9. Helm一:简介

    目录 什么是Helm Helm解决的问题 Helm原理 Helm架构 Helm功能 Helm三个重要概念 Helm组件 Helm Client Tiller Server Helm实现 什么是Helm ...

  10. python---django使用数据库(orm)

    官方教程点击此处 项目默认使用sqlite DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os. ...