第一部分:MySQL安装与配置
1.1 安装MySQL
在Ubuntu终端中执行以下命令:
# 更新软件源
sudo apt update
# 安装MySQL服务器
sudo apt -y install mysql-server
# 检查MySQL服务状态
sudo systemctl status mysql
看到"Active: active (running)"表示安装成功!
1.2 设置root密码
# 登录MySQL
sudo mysql
# 在MySQL命令行中设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
quit;
1.3 创建测试数据库和表
# 重新登录MySQL
mysql -u root -p # 输入密码123456
# 创建数据库和表
CREATE DATABASE people;
USE people;
CREATE TABLE people_info(
id BIGINT,
gender VARCHAR(10),
height INT
);
# 插入测试数据
INSERT INTO people_info VALUES(0, 'F', 168);
# 退出
quit;
第二部分:准备MySQL JDBC驱动
2.1 下载驱动
从MySQL官网下载对应版本的JDBC驱动(如mysql-connector-j-8.0.31.tar.gz)
2.2 安装驱动
# 解压驱动包
cd ~/soft
tar -zxf mysql-connector-j-8.0.31.tar.gz
# 复制到Spark的jars目录
cp mysql-connector-j-8.0.31/mysql-connector-j-8.0.31.jar /usr/local/spark/jars
重要提示:完成后需要重启PySpark才能生效!
第三部分:Spark读写MySQL
3.1 从CSV创建DataFrame
启动PySpark后执行:
# 定义schema
pep_schema = 'id LONG, gender STRING, height INT'
# 读取CSV文件
df = spark.read.csv(
"file:///home/spark/people_info.csv",
schema=pep_schema)
# 创建临时视图
df.createOrReplaceTempView("my_people_info")
3.2 写入数据到MySQL
# 查询前10条数据
pep10 = spark.sql("SELECT * FROM my_people_info LIMIT 10")
# 配置连接信息
prop = {
'user': 'root',
'password': '123456',
'driver': 'com.mysql.cj.jdbc.Driver'
}
url = 'jdbc:mysql://localhost:3306/people'
# 写入MySQL
pep10.write.jdbc(
url=url,
table='people_info',
mode='append', # 追加模式
properties=prop)
# 查看写入的数据
pep10.show()
3.3 从MySQL读取数据
# 读取MySQL表
mysql_df = spark.read.jdbc(
url=url,
table='people_info',
properties=prop)
mysql_df.show()