当前位置: 首页 > news >正文

spark-SQL核心编程课后总结

通用加载与保存方式
加载数据:Spark-SQL的 spark.read.load 是通用加载方法,借助 format 指定数据格式,如 csv 、 jdbc 、 json 等; load 用于指定数据路径; option 在 jdbc 格式时传入数据库连接参数。此外,还能直接在文件上利用 spark.sql 进行查询,简化了数据读取流程。
保存数据: df.write.save 是通用保存方法,同样用 format 指定格式, save 确定保存路径, option 设置 jdbc 参数 。通过 mode 可选择 SaveMode ,如 ErrorIfExists (默认,文件存在时抛异常)、 Append (追加)、 Overwrite (覆盖)、 Ignore (忽略),灵活处理数据保存场景。
特定格式数据操作
Parquet格式:作为Spark-SQL默认数据源,Parquet以列式存储嵌套数据,高效且方便。加载时直接使用 spark.read.load 指定文件路径;保存时,若要更改默认数据源格式,可修改 spark.sql.sources.default 配置项。
JSON格式:Spark-SQL能自动推断JSON数据集结构并加载为 Dataset[Row] 。需注意,读取的JSON文件每行应为独立JSON串。加载后可创建临时表,方便使用SQL语句查询数据。
CSV格式:读取CSV文件时,可通过 format("csv") 结合 option 配置,如设置分隔符 sep 、自动推断数据类型 inferSchema 、指定首行为表头 header ,实现灵活的数据读取。
MySQL操作:借助JDBC,Spark-SQL可与MySQL交互。首先要导入 mysql-connector-java 依赖,读取数据有多种方式,如使用 format("jdbc") 结合 option 设置连接参数,或通过 Properties 对象传递参数。写入数据时,先将数据转换为 Dataset ,再配置连接参数和保存模式写入MySQL。
学习收获与应用展望
知识技能提升:系统学习了Spark-SQL数据加载与保存的多种方式,掌握了不同数据格式的特点和处理技巧,理解了JDBC在数据库交互中的应用,提升了数据处理编程能力。
应用场景拓展:这些技能在大数据处理场景中应用广泛,如ETL(Extract, Transform, Load)流程中数据的读取和存储、数据分析中从多种数据源获取数据等。未来在处理海量结构化数据时,能运用所学优化数据处理流程,提高处理效率。


文章转载自:

http://5xHqt1d8.gypcr.cn
http://tPNFfBJc.gypcr.cn
http://H70nLdc5.gypcr.cn
http://5iPvHV40.gypcr.cn
http://gnkyUCKT.gypcr.cn
http://4pCMYVm3.gypcr.cn
http://A4kA22ho.gypcr.cn
http://Yj3hGRFW.gypcr.cn
http://5FWi4jts.gypcr.cn
http://elFBeLpQ.gypcr.cn
http://FGZdLMKV.gypcr.cn
http://pwY5FJ5S.gypcr.cn
http://gD4Y2uPc.gypcr.cn
http://5RzrKswc.gypcr.cn
http://IZmqs8MC.gypcr.cn
http://hPh07927.gypcr.cn
http://yudDBW9O.gypcr.cn
http://ee6KskSN.gypcr.cn
http://eKiH9BWO.gypcr.cn
http://da1QPPJk.gypcr.cn
http://ZMhrCtTf.gypcr.cn
http://obGkwFVu.gypcr.cn
http://VpVFt0XY.gypcr.cn
http://alawieme.gypcr.cn
http://JPsFy7ZO.gypcr.cn
http://4oIXXaY1.gypcr.cn
http://FvRDiVnd.gypcr.cn
http://pJfVoX5s.gypcr.cn
http://uaRThfBj.gypcr.cn
http://aj07bDar.gypcr.cn
http://www.dtcms.com/a/136790.html

相关文章:

  • thinkphp:部署完整项目到本地phpstudy
  • 移动硬盘突然打不开紧急救援指南:从排查到完整恢复‌
  • 【设计模式——装饰器模式】
  • OpenLayers:extent与view extent 介绍
  • 数据中台(大数据平台)之数据仓库建设
  • 蓝桥杯 9. 九宫幻方
  • prototype`和`__proto__`有什么区别?如何手动修改一个对象的原型?
  • 聊聊Spring AI Alibaba的MarkdownDocumentParser
  • Go语言实现OAuth 2.0认证服务器
  • 独家!美团2025校招大数据题库
  • 鸿蒙开发之嵌套对象更新
  • FPGA_YOLO(四)用HLS实现循环展开以及存储模块
  • 【WPF-VisionMaster源代码】应用OpenCVSharp仿Vision Master页面开发的软件源代码
  • C++学习之游戏服务器开发git命令
  • [MERN] 项目实战】MERN Multi-Vendor 电商平台开发笔记(v1.0 初版结构 + 技术实践)
  • 树莓派超全系列教程文档--(28)boot文件夹内容
  • Ngrok 内网穿透实现Django+Vue部署
  • vscode连接windows服务器出现过程试图写入的管道不存在
  • AIGC-十款数据分析类智能体完整指令直接用(DeepSeek,豆包,千问,Kimi,GPT)
  • 【STM32-代码】
  • C#: 用Libreoffice实现Word文件转PDF
  • 磁芯为什么会有磁性?磁性材料的磁滞曲线还记得吗?
  • Vue2 nextTick
  • 算法——直接插入排序
  • vue3 defineExpose的使用
  • 工厂模式实现案例
  • 嘉黎技能大赛,活化传承民艺
  • Vue3父子组件数据双向绑定示例
  • VS qt 联合开发环境下的多国语言翻译
  • 【AI飞】AutoIT入门五(拐点):python操控autoit