基于Spark配置+缓存策略+Junpyter Notebook 实现Spark数据加速调试

一、Spark配置加载优化

  1. 减少shuffle分区
  2. 减少并行度
  3. 关闭自适应优化(小数据更快)
  4. 足够Driver内存
  5. 启用Arrow加速
  6. 关闭UI减少开销
  7. 本地模式,避免网络开销
python 复制代码
%%time
# 初始化计时
import time
import pandas as pd
from pyspark.sql import SparkSession
from pyspark.storagelevel import StorageLevel

# 创建优化的SparkSession(针对小数据调试)
spark = SparkSession.builder \
    .appName("JupyterDebug") \
    .config("spark.sql.shuffle.partitions", "1") \          # 减少shuffle分区
    .config("spark.default.parallelism", "1") \            # 减少并行度
    .config("spark.sql.adaptive.enabled", "false") \       # 关闭自适应优化(小数据更快)
    .config("spark.driver.memory", "2g") \                 # 足够Driver内存
    .config("spark.sql.execution.arrow.pyspark.enabled", "true") \  # 启用Arrow加速
    .config("spark.ui.enabled", "false") \                 # 关闭UI减少开销
    .master("local[*]") \                                  # 本地模式,避免网络开销
    .getOrCreate()

二、缓存策略

python 复制代码
%%time
# 数据加载代码
# df1 = get_df1(spark)

df1 = df1.persist(StorageLevel.MEMORY_AND_DISK)  # 缓存加速。生产场景应根据数据量或通过配置项决定是否缓存
df1.cache()
df1.show(20)
df1.printSchema()
print(f"columns count: {len(df1.columns)}")
print(f"columns: {df1.olumns}")

三、 建议

  1. 优化分区、网络配置加速运行 :避免网络开销,使用master("local[*]")
  2. 预先缓存策略 :在show()之前先persist()cache()并触发缓存,注意生产应通过配置或数据量合理控制使用缓存,避免内存问题。
  3. 利用Jupyter特性 :使用display()、交互式变量查看
相关推荐
Georgeviewer6 小时前
商业落地评测|实体门店GEO优化性价比与服务体系深度复盘
大数据·人工智能
YOU OU7 小时前
Redis基础常识与命令
数据库·redis·缓存
腻害兔8 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
GIR1238 小时前
官方出品 | 多通道土壤呼吸测量系统市场现状与十五五规划深度报告:行业分析+趋势预测全收录
大数据·人工智能·机器学习
南讯股份Nascent9 小时前
洽洽全域会员项目启动会圆满召开
大数据·人工智能
大郭鹏宇9 小时前
基于 LangGraph 构建智能分诊系统(一):项目概述与环境搭建
大数据·人工智能·microsoft·langchain
Database_Cool_10 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
吳所畏惧12 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
天天爱吃肉821813 小时前
【电源拆解:跟着问答逐一认识开关适配器PCB元器件】
大数据·人工智能·python·功能测试·嵌入式硬件·汽车
Elastic 中国社区官方博客13 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana