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住

相关推荐
星轨zb3 分钟前
什么是Spring设计模式:单例、工厂与代理
java·spring·设计模式
Seven976 分钟前
Tomcat Server的设计和实现:StandardServer
java
s6516654966 分钟前
Makefile语法学习
java·linux·前端
Rabitebla7 分钟前
二分查找(含有动画展示):不再写出死循环
java·开发语言
人道领域11 分钟前
【LeetCode刷题日记】150.逆波兰表达式求值
java·数据结构·算法·leetcode
蓝桉~MLGT14 分钟前
中级软考(软件工程师)算法特辑——常考的六大基础排序算法
java·算法·排序算法
悟空爬虫-彪哥14 分钟前
Stich接入Codex教程
java·前端·数据库
极客先躯17 分钟前
高级java每日一道面试题-2025年11月14日-行业专题[LangChain4j]-如何用 LLM 辅助信用风险评估?
java·数据库·langchain·可解释性·数据来源·分析方式·风险识别
lv__pf18 分钟前
线程池11111111111
java