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住

相关推荐
Bat U14 分钟前
JavaEE|多线程初阶(七)
java·开发语言
掌心向暖RPA自动化3 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
日取其半万世不竭3 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
TeamDev4 小时前
JxBrowser 9.0.0 版本发布啦!
java·前端·混合应用·jxbrowser·浏览器控件·跨平台渲染·原声输入
AI人工智能+电脑小能手4 小时前
【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
java·开发语言·后端·面试
AI人工智能+电脑小能手4 小时前
【大白话说Java面试题】【Java基础篇】第25题:JDK1.8的新特性有哪些
java·开发语言·后端·面试
likerhood5 小时前
SLF4J: Failed to load class “StaticLoggerBinder“ 解决
java·log4j·maven
早日退休!!!5 小时前
大模型推理瓶颈七层分析模型
java·服务器·数据库
howard20055 小时前
2.4.3 集群模式运行Spark项目
spark·项目打包·提交运行
叶小鸡5 小时前
Java 篇-项目实战-天机学堂(从0到1)-day9
java·开发语言