spark sql cache
1.几种缓存数据的方法
例如有一张hive表叫做activity
1.CACHE TABLE
//缓存全表
sqlContext.sql("CACHE TABLE activity")//缓存过滤结果
sqlContext.sql("CACHE TABLE activity_cached as select * from activity where ...")
CACHE TABLE是即时生效(eager)的,如果你想等到一个action操作再缓存数据可以使用CACHE LAZY TABLE,这样操作会直到一个action操作才被触发,例如count(*)
sqlContext.sql("CACHE LAZY TABLE ...")
取消hive表缓存数据
sqlContext.sql("UNCACHE TABLE activity")
2.将dataFrame注册成表并缓存
val df = sqlContext.sql("select * from activity")
df.registerTempTable("activity_cached")
sqlContext.cacheTable("activity_cached")Tip:cacheTable操作是lazy的,需要一个action操作来触发缓存操作。
对应的uncacheTable可以取消缓存
sqlContext.uncacheTable("activity_cached")
3.缓存dataFrame
val df = sqlContext.sql("select * from tableName")
df.cache()
2.缓存结果
缓存时看到如下提示:
Added rdd_xx_x in memory on ...
如果内存不足,则会存入磁盘中,提示如下:
Added rdd_xx_x on disk on ...
缓存数据后可以在Storage上看到缓存的数据
3.一些参数
spark.sql.autoBroadcastJoinThreshold
该参数默认为10M,在进行join等聚合操作时,将小于该值的表broadcast到每台worker,消除了大量的shuffle操作。
spark.rdd.compress true
将rdd存入mem或disk前再进行一次压缩,效果显著,我使用cacheTable了一张表,没有开启该参数前总共cache了54G数据,开启这个参数后只34G,可是执行速度并没有收到太大的影响。
spark.sql.shuffle.partitions
这个参数默认为200,是join等聚合操作的并行度,如果有大量的数据进行操作,造成单个任务比较重,运行时间过长的时候,会报如下的错误:
org.apache.spark.shuffle.FetchFailedException: Connection from /192.168.xx.xxx:53450 closed
这个时候需要提高该值。
转载于:https://www.cnblogs.com/wuwuwu/p/6162572.html
spark sql cache相关推荐
- spark sql 本地调试_Spark精华问答|Spark的三种运行模式有何区别?
戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...
- Spark SQL 源代码分析系列
从决定写Spark SQL文章的源代码分析,到现在一个月的时间,一个又一个几乎相同的结束很快,在这里也做了一个综合指数,方便阅读,下面是读取顺序 :) 第一章 Spark SQL源代码分析之核心流程 ...
- Spark SQL玩起来
标签(空格分隔): Spark [toc] 前言 Spark SQL的介绍只包含官方文档的Getting Started.DataSource.Performance Tuning和Distribut ...
- spark SQL读取ORC文件从Driver启动到开始执行Task(或stage)间隔时间太长(计算Partition时间太长)且产出orc单个文件中stripe个数太多问题解决方案...
1.背景: 控制上游文件个数每天7000个,每个文件大小小于256M,50亿条+,orc格式.查看每个文件的stripe个数,500个左右,查询命令:hdfs fsck viewfs://hadoop ...
- 如何查询spark版本_掌握Spark SQL中的查询执行
了解您的查询计划 自从Spark 2.x以来,由于SQL和声明性DataFrame API,在Spark中查询数据已成为一种奢侈. 仅使用几行高级代码就可以表达非常复杂的逻辑并执行复杂的转换. API ...
- Spark SQL 之SQLContext(二)
1. SQLContext的创建 SQLContext是Spark SQL进行结构化数据处理的入口,可以通过它进行DataFrame的创建及SQL的执行,其创建方式如下: //sc为SparkCont ...
- 实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作
转载自 实战 | 利用Delta Lake使Spark SQL支持跨表CRUD操作 供稿 | eBay ADI-Carmel Team 作者 | 金澜涛 编辑 | 顾欣怡 本文7309字,预计阅读时 ...
- Spark Relational Cache实现亚秒级响应的交互式分析
本次分享主要分为以下四个方面: 项目介绍 技术分析 如何使用 性能分析 一.项目介绍 项目背景 阿里云EMR是一个开源大数据解决方案,目前EMR上面已经集成了很多开源组件,并且组件数量也在不断的增加中 ...
- Spark SQL整合Hive
Spark SQL官方释义 Spark SQL is Apache Spark's module for working with structured data. 一.使用Spark SQL访问Hi ...
最新文章
- java中的doget_java servlet中doGet()和doPost()方法的用法和区别
- 【数据分析】33个热门数据分析软件,你都用过哪些?
- 【java】如何在IDEA 中查看 Class文件的汇编
- easyui datagrid 去掉外边框及行与行之间的横线标题字体
- ajax通过对象获得时间戳,从FullCalendar事件对象获取简单的时间戳
- 免费分享20套PHP源码
- android 加载ae动画,Bodymovin:Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画...
- Qt学习视频资料汇总
- 《ParaView Tutorial》
- uniapp 集成腾讯云超级播放器问题
- Cydia添加源http://apt.Feng.com,完成packages卡住 解决方法
- git提交错分支处理
- javaFX学习笔记之 管理Web弹出式窗口
- 【TensorFlow】使用slim从ckpt里导出指定层的参数
- 电脑图片分类管理软件用什么工具,这一款便签工具可以管理图片
- 干货 | 一文读懂数据分析
- 网页滚动条样式修改 html+css
- PostgreSQL 修改用户密码
- Folium库使用心得(一)
- 可执行程序的装载——刘世鹏20135304
热门文章
- 大数据与商业地理分析
- MCU——JLINK接外部电源调试问题
- SparkStreaming transform算子入门案例
- spark 转换算子应用举例
- Django的rest_framework的视图之Mixin类编写视图源码解析...
- 深度学习(一)神经网络中的池化与反池化原理
- Nginx如何实现读写限流的方法
- SharePoint Framework 企业向导(六)
- java.io.StreamCorruptedException: invalid stream header: 20200909
- cPanel虚拟主机上运行Python的方法