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 分钟前
第18天:Springboot 项目搭建
java·spring boot·后端
Fang fan4 分钟前
Java集合
java·开发语言·算法
福运常在15 分钟前
股票数据API(21)如何获取股票指数最新分时交易数据
java·python·maven
计算机徐师兄20 分钟前
Java基于微信小程序的青少年科普教学系统【附源码、文档说明】
java·微信小程序·青少年科普教学系统小程序·java青少年科普教学小程序·青少年科普教学微信小程序·青少年科普教学小程序·科普教学微信小程序
东离与糖宝22 分钟前
面试官直言:Java应届生面试,我只看这3个核心能力
java·面试
逸Y 仙X26 分钟前
文章十三:ElasticSearch数据更新实战
java·大数据·elasticsearch·搜索引擎·jenkins
说给风听.26 分钟前
从零学会 Java 异常处理 —— 核心语法、自定义异常与面试指南
java·开发语言·面试
身如柳絮随风扬29 分钟前
Java JDBC 从入门到进阶
java·开发语言
Joker`s smile30 分钟前
Spring Cloud Alibaba 基础入门实践
java·spring boot·后端·spring cloud
nbsaas-boot32 分钟前
AI编程的现实困境与未来路径:从“可用”到“可靠”的跃迁
java·运维·开发语言·架构