036 SQLContext和HiveContext
2024-10-15 17:18:32
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支持序列化
})
最新文章
- 用Kotlin语言重新编写Plaid APP:经验教训(II)
- nginx 页面乱码问题
- as3 同屏1000+动画,不掉帧。解决方案。
- long long 与 _int64
- oracle自定义job名字,job调度
- [AngularJS] Hijacking Existing HTML Attributes with Angular Directives
- Biba模型简介
- 利用 css 制作简单的提示框
- Python面向对象OOP
- Asp.Net Mvc使用Autofac实现依赖注入
- ●BZOJ 3894 文理分科
- axios 或 ajax 请求文件
- MDK编译过程
- Problem E: 用链表实现约瑟夫环
- LeetCode--067--二进制求和
- Flask 5 模板1
- Thymeleaf 标准表达式语法
- Java07
- linux c++ rabbitMq Demo
- mysqli_insert_id