3.编程实现利用 DataFrame 读写 MySQL 的数据 (1)在 MySQL 数据库中新建数据库 sparktest,再创建表 employee,包含的两行数据。id name gender Age: 1 ,Alice, F, 22; 2, John, M,,25。给出输出结果
时间: 2024-03-04 22:49:56 浏览: 15
下面是利用 DataFrame 读写 MySQL 的代码:
```python
from pyspark.sql import SparkSession
# 创建 SparkSession
spark = SparkSession.builder.appName("DataFrame with MySQL").getOrCreate()
# 读取 MySQL 数据库中的数据到 DataFrame
df = spark.read.format("jdbc") \
.option("url", "jdbc:mysql://localhost:3306/sparktest") \
.option("dbtable", "employee") \
.option("user", "root") \
.option("password", "root") \
.load()
# 打印 DataFrame 的所有数据
df.show()
# 将 DataFrame 中的数据写入 MySQL 数据库
df.write.format("jdbc") \
.option("url", "jdbc:mysql://localhost:3306/sparktest") \
.option("dbtable", "employee") \
.option("user", "root") \
.option("password", "root") \
.mode("overwrite") \
.save()
```
上述代码中,我们首先读取 MySQL 数据库中的 employee 表到 DataFrame 中,并打印出 DataFrame 的所有数据。然后将 DataFrame 中的数据写入 MySQL 数据库中的 employee 表中,使用的是 overwrite 模式,即覆盖原有的数据。
输出结果如下:
```
+---+-----+------+---+
| id| name|gender|age|
+---+-----+------+---+
| 1|Alice| F| 22|
| 2| John| M| 25|
+---+-----+------+---+
```
注意:在运行上述代码前,请先确保已经安装了 JDBC 驱动程序,并将其添加到 Spark 的 classpath 中。如果没有安装 JDBC 驱动程序,请参考以下步骤进行安装:
1. 下载 MySQL JDBC 驱动程序(版本号根据自己的 MySQL 版本进行选择),下载地址为:https://dev.mysql.com/downloads/connector/j/
2. 将下载的 JDBC 驱动程序的 jar 包复制到 Spark 的 jars 目录下,例如:
```
cp mysql-connector-java-8.0.25.jar /path/to/spark/jars/
```
3. 在 Spark 中添加 JDBC 驱动程序的依赖,例如:
```
spark = SparkSession.builder.appName("DataFrame with MySQL") \
.config("spark.driver.extraClassPath", "/path/to/spark/jars/mysql-connector-java-8.0.25.jar") \
.getOrCreate()
```