Spark SQL,DF,RDD cache常用方式

RDD中的cache

调用cache方法

复制代码
val testRDD = sc.parallelize(Seq(elementA, elementB, elementC)).
    map(x => (x._1, x._2)).setName("testRDD")

testRDD.cache()

dataframe中的cache

利用catalog以表的形式对数据进行缓存

复制代码
import org.apache.spark.SparkConf
import org.apache.spark.sql.{SaveMode, SparkSession}
import org.apache.spark.sql.functions.udf



val conf = new SparkConf().setAppName(s"test_app")
val spark = SparkSession.builder().config(conf).getOrCreate()
spark.read.parquet(s"${BASEPATH}/dws_live_mid_stat_order_di/event_day=${event_day}").createOrReplaceTempView(s"dwd_flow_sessionid_di")

spark.catalog.cacheTable("dwd_flow_sessionid_di")
spark.catalog.uncacheTable("dwd_flow_sessionid_di")

SQL中的cache

复制代码
    spark.sql(
      s"""
         |cache table flow_basic_tmp as
         |select
         |    *
         |from
         |    test.tmp_live_mid_stat_order_di
         |""".stripMargin)

UNCACHE TABLE [ IF EXISTS ] table_identifier

SQL cache 相关文档,可以懒加载 CACHE TABLE - Spark 3.5.0 Documentation

需要注意的点 :

Spark.createDateFrame需要执行

基于DF 需要执行action,才能让RDD cache住

相关推荐
申克Lab11 分钟前
STM32 FreeRTOS 消息队列
java·stm32·嵌入式硬件
敲敲千反田15 分钟前
多线程复习
java·开发语言
敲敲了个代码41 分钟前
多标签页强提醒不重复打扰:从“弹框轰炸”到“共享待处理队列”的实战
java·前端·javascript·面试·架构
Jackson@ML41 分钟前
2026最新版Eclipse for Java安装使用指南
java·ide·eclipse
莫问前路漫漫1 小时前
JDK 核心实操指南:从安装配置到项目打包调试全流程
java·jdk
Getgit1 小时前
Linux系统的特点有哪些
java·linux·运维·网络·sql
大鳥1 小时前
企业级 Hive on Spark 开发规范
hive·hadoop·spark
APIshop1 小时前
Java获取item_get-获得某书商品详情接口
java·开发语言·python
weixin_395448911 小时前
tidl_import_mul_rmfsd_psd_u8_3x480x544_bise_raw_dynamic.txt
java·服务器·前端
多多*2 小时前
图解Redis的分布式锁的历程 从单机到集群
java·开发语言·javascript·vue.js·spring·tomcat·maven