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

Spark-SQL(三)

一. 数据加载与保存

1. 数据加载:

spark.read.load 是加载数据的通用方法。

spark.read.format("…")[.option("…")].load("…")

1)format("…"):指定加载的数据类型。

2)load("…"):格式下需要传入加载数据的路径。

3)option("…"):在"jdbc"格式下需要传入 JDBC 相应参数。如:url、user、password 和 dbtable

2. 保存数据

df.write.save 是保存数据的通用方法。

df.write.format("…")[.option("…")].save("…")

format("…"):指定保存的数据类型

save ("…"):格式下需要传入保存数据的路径。

option("…"):在"jdbc"格式下需要传入 JDBC 相应参数,如:url、user、password 和 dbtable

保存操作可以使用 SaveMode, 用来指明如何处理数据,使用 mode()方法来设置

Parquet

Spark SQL 的默认数据源为 Parquet 格式。Parquet 是一种能够有效存储嵌套数据的列式

存储格式。数据源为 Parquet 文件时,Spark SQL 可以方便的执行所有的操作,不需要使用 format。修改配置项 spark.sql.sources.default,可修改默认数据源格式。

JSON

Spark SQL 能够自动推测 JSON 数据集的结构,并将它加载为一个 Dataset[Row]. 可以通过 SparkSession.read.json()去加载 JSON 文件。注意:Spark 读取的 JSON 文件不是传统的 JSON 文件,每一行都应该是一个 JSON 串

CSV

Spark SQL 可以配置 CSV 文件的列表信息,读取 CSV 文件,CSV 文件的第一行设置为数据列。

3. MySQL

Spark-SQL 可以通过 JDBC 从关系型数据库中读取数据的方式创建 DataFrame,通过对

DataFrame 一系列的计算后,还可以将数据再写回关系型数据库中。

IDEA通过JDBC对MySQL进行操作:

1) 在pop.xml中导入依赖

2)读取数据

通过load读取有两种方式

方式一:

案例演示

读取结果

方式二:

案例演示

读取结果

通过JDBC读取数据

读取结果

3)写入数据

案例演示

运行成功

可以看到数据已经写入

二 Spark-SQl连接hive

1. 在虚拟机中下载以下文件

2.修改hive-site.xml文件

3. 将在虚拟机下载的文件放到conf目录下

4. mysql驱动复制到jars目录下

5. 重启spark-shell验证命令

三 在idea中操作Hive

1)导入依赖

2)将hive-site.xml 文件拷贝到项目的 resources 目录中

案例演示

运行结果

相关文章:

  • 方案解读:虚拟电厂总体规划建设方案【附全文阅读】
  • 从零开始学习PX4源码20(遥控器模式切换如何执行)
  • 进程控制(上)【Linux操作系统】
  • 【leetcode100】整数拆分
  • 带宽”(bandwidth)有以下两种不同的意义
  • 41.[前端开发-JavaScript高级]Day06-原型关系图-ES6类的使用-ES6转ES5
  • 【C++游戏引擎开发】第16篇:ImGui指南
  • MTK-Android12 13 屏蔽掉Viewing full screen
  • 【数据结构_9】栈和队列
  • spring:注解@PostConstruct、@PreDestroy
  • 同步 vs 异步 最直白的区别
  • Github webhook 是什么以及它的用途
  • 强化学习的数学原理(四)Value iteration Policy iteration
  • LLamaIndex中经常使用的四个模块
  • 2024年第九届团队程序设计天梯赛c++题解L1-L3-1(附PTA网址)
  • 6 CMD 与 PowerShell 指令大全、C 程序终端运行、字符编码切换指南
  • 【AI工具】用大模型生成脑图初试
  • C++学习记录:
  • 2025主流报表软件评测和推荐
  • 【DeepSeek答】如何成为一名科技领域陪同口译,阶段性学习目标是什么
  • 前端做网站要会什么/什么样的人适合做策划
  • 海城网站制作建设/百度热搜榜排名昨日
  • 公司要建个网站/自动点击器app
  • 学生做网站的软件/传统营销与网络营销的区别
  • 2017两学一做网站/怎么开发自己的小程序
  • 国内设计欣赏网站/百度天眼查公司