配置 Spark 通过 JDBC 连接数据库 MySQL,编程实现利用 DataFrame 插入id name gender age: 3, Mary, F, 26;4, Tom, M, 23两行数据到 MySQL 中,最后打印出 age 的最大值和 age 的总和。
时间: 2024-02-29 15:51:39 浏览: 226
Spark与Mysql的交互
5星 · 资源好评率100%
下面是基于Python语言的Spark通过JDBC连接MySQL的实现代码:
```python
# 导入相关的库
from pyspark.sql import SparkSession
# 创建SparkSession对象
spark = SparkSession.builder.appName("JdbcExample").getOrCreate()
# 配置MySQL连接参数
url = "jdbc:mysql://localhost:3306/sparktest"
table = "employee"
mode = "append"
properties = {
"user": "username",
"password": "password"
}
# 创建DataFrame
data = [(3, 'Mary', 'F', 26), (4, 'Tom', 'M', 23)]
df = spark.createDataFrame(data, ['id', 'name', 'gender', 'age'])
# 将DataFrame写入MySQL数据库
df.write.jdbc(url=url, table=table, mode=mode, properties=properties)
# 从MySQL数据库中读取数据到DataFrame
df = spark.read.jdbc(url=url, table=table, properties=properties)
# 计算age的最大值和总和
max_age = df.agg({"age": "max"}).collect()[0][0]
sum_age = df.agg({"age": "sum"}).collect()[0][0]
# 打印age的最大值和总和
print("Max age: {}".format(max_age))
print("Sum age: {}".format(sum_age))
```
需要注意的是,在代码中需要将`username`和`password`替换成自己的MySQL用户名和密码。在配置MySQL连接参数时,我们需要指定MySQL数据库的连接地址和要操作的表名,以及访问MySQL的用户名和密码。然后,我们使用`createDataFrame`方法创建DataFrame,并使用`write.jdbc`方法将DataFrame写入MySQL数据库中。最后,我们使用`read.jdbc`方法从MySQL数据库中读取数据到DataFrame中,并计算age的最大值和总和。
阅读全文