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住

相关推荐
予枫的编程笔记4 分钟前
Elasticsearch聚合分析与大规模数据处理:解锁超越搜索的进阶能力
java·大数据·人工智能·分布式·后端·elasticsearch·全文检索
BD_Marathon6 分钟前
PostMan简介
java
一勺菠萝丶6 分钟前
宝塔 vs 1Panel 有什么区别?能不能同时安装?
java
码农小卡拉7 分钟前
Springboot “钩子”:@PostConstruct注解
java·spring boot·后端·spring·spring cloud
毕设源码-郭学长11 分钟前
【开题答辩全过程】以 快递仓库管理系统为例,包含答辩的问题和答案
java
麦聪聊数据15 分钟前
生成测试数据(三):从建表到 CRUD 的冷启动
数据库·sql
꧁Q༒ོγ꧂17 分钟前
算法详解(二)--算法思想基础
java·数据结构·算法
次元工程师!19 分钟前
Sa-Token完成路由鉴权
java·服务器·前端
华如锦25 分钟前
一.2部署——大模型服务快速部署vLLM GPU 安装教程 (Linux)
java·linux·运维·人工智能·后端·python·vllm
小鸡脚来咯31 分钟前
设计模式,单例和工厂模式
java