036 SQLContext和HiveContext
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的更多相关文章
- SQLContext、HiveContext自定义函数注册
本文简单介绍两种往SQLContext.HiveContext中注册自定义函数方法. 下边以sqlContext为例,在spark-shell下操作示例: scala> sc res5: org ...
- 理解Spark SQL(二)—— SQLContext和HiveContext
使用Spark SQL,除了使用之前介绍的方法,实际上还可以使用SQLContext或者HiveContext通过编程的方式实现.前者支持SQL语法解析器(SQL-92语法),后者支持SQL语法解析器 ...
- SparkSession、SparkContext、SQLContext和HiveContext之间的区别。
SparkContext 是什么? 驱动程序使用SparkContext与集群进行连接和通信,它可以帮助执行Spark任务,并与资源管理器(如YARN 或Mesos)进行协调. 使用SparkCont ...
- Spark教程——(4)Spark-shell调用SQLContext(HiveContext)
启动Spark-shell: [root@node1 ~]# spark-shell Setting default log level to "WARN". To adjust ...
- HiveContext VS SQLContext
There are two ways to create context in Spark SQL: SqlContext:scala> import org.apache.spark.sql. ...
- Spark记录-org.apache.spark.sql.hive.HiveContext与org.apache.spark.sql.SQLContext包api分析
HiveContext/SQLContext val hiveContext=new HiveContext(new SparkContext(new SparkConf().setAppName(& ...
- spark 1.5的hivecontext的问题
spark升级到1.5,里面的hive版本升级到1.2.1版本,我写了如下的代码 object SQLApp extends App{ val sparkconf = new SparkConf(). ...
- Spark:DataFrame批量导入Hbase的两种方式(HFile、Hive)
Spark处理后的结果数据resultDataFrame可以有多种存储介质,比较常见是存储为文件.关系型数据库,非关系行数据库. 各种方式有各自的特点,对于海量数据而言,如果想要达到实时查询的目的,使 ...
- Spark SQL 之 DataFrame
Spark SQL 之 DataFrame 转载请注明出处:http://www.cnblogs.com/BYRans/ 概述(Overview) Spark SQL是Spark的一个组件,用于结构化 ...
随机推荐
- STM32配置GPIO前须先打开其时钟,否则配置失败
@2018-5-9 17:11:38 STM32配置GPIO前须先打开其时钟,否则配置失败
- 标记,上传并下载自己创建的镜像 image
1. 首先使用 docker images 查看已有镜像: 2. 获得 docker-whale 的 IMAGE ID,然后为 docker-whale 镜像 image 打上标签 Tag.使用命令: ...
- linux文件名匹配——通配符使用
背景:在linux使用过程中,经常需要查找文件,对命令中的通配符pattern和正则表达式的区分不是很清楚.有必要好好研究一下. 1 扫盲 1.1 通配符和正则表达式 当在使用命令行时,有很多时间都用 ...
- python之旅:面向对象进阶
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object) ...
- python中的requests使用小结
现接触到的很少,详细的官方教程地址: requests官方指南文档:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html ...
- 项目中经常用到的JavaScript方法
1. js切割字符串 String.split() 注意:此方法与Array.join执行的方法是相反的. 2. js把数组中所有元素放入一个字符串 Array.join()
- shell jq
Mark 下,周末来补充 参考资料: https://stedolan.github.io/jq/tutorial/
- c#的as,is 运算符
- Lua程序设计(二)面向对象概念介绍
----------------------------------------------------------- Lua面向对象3 local smartMan = { name = " ...
- CSS 实现图片灰度效果
非原创-从网上收索出来的文章 CSS实现图片灰度效果就是通过CSS样式让彩色图片呈现为灰色,相当于把一张图像的颜色模式调整为灰度,CSS可以通过以下几种方法来实现灰度效果. 方式1. IE滤镜 img ...