【大数据技术】Spark-SQL如何连接MySQL并进行读写数据

【大数据技术】spark SQL如何连接MySQL并读取数据

1、配置连接MySQL的驱动

  • 根据自己安装的MySQL的版本,找到正确的驱动文件,我的是MySQL8.0.19
    所以驱动文件是mysql-connector-java-8.0.19.jar,将其复制到spark目录下的jars文件夹下

my@ubuntu:/usr/local/spark245_h_local/jars$ cp
/home/my/myfolder/mysql-connector-java-8.0.19/mysql-connector-java-8.0.19.jar
.
在这里插入图片描述

2、spark-shell里配置MySQL连接信息(含账号密码,默认库等)

例如我想读取MySQL里test库下的cc表,则可进行如下配置:


> val mysql_connect = new java.util.Properties()
> mysql_connect.put("user","root")
> mysql_connect.put("password","123456")
> spark.read.jdbc("jdbc:mysql://ubuntu:3306/test","cc",mysql_connect)

在这里插入图片描述

3、从MySQL读取数据

spark.read.jdbc("jdbc:mysql://ubuntu:3306/test","cc",mysql_connect)

在这里插入图片描述

4、写数据到MySQL

  • 与向表test.cc中写入如下数据
    id | name
    -------- | -----
    21| aaa
    22| bbb

> val r1 = sc.parallelize(Array((21,"aaa"),(22,"bbb")))  
> r1.collect

在这里插入图片描述

  • 此时r1仍为RDD,故需要转换为dataframe才可以进一步操作
	> r1.toDF("id","name")  
	> res6.show()

在这里插入图片描述

  • 写入到MySQL

r1.toDF("id","name").write.mode("append").jdbc("jdbc:mysql://ubuntu:3306/test","cc",mysql_connect)

在这里插入图片描述

  • 去MySQL里查看数据
    如红色标注,说明已写入成功
    在这里插入图片描述
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Spark SQL可以通过JDBC连接MySQL数据库,实现读写数据的操作。 具体步骤如下: 1. 在Spark应用程序中,引入MySQL JDBC驱动程序。 2. 使用SparkSession对象创建一个DataFrame,指定MySQL数据库的连接信息和查询语句。 3. 使用DataFrame的API进行数据读取或写入操作。 例如,以下代码演示了如何使用Spark SQL通过JDBC连接MySQL数据库读取数据: ``` import org.apache.spark.sql.SparkSession object SparkSQLJDBCExample { def main(args: Array[String]): Unit = { val spark = SparkSession.builder() .appName("Spark SQL JDBC Example") .master("local[*]") .getOrCreate() val jdbcDF = spark.read .format("jdbc") .option("url", "jdbc:mysql://localhost:3306/test") .option("driver", "com.mysql.jdbc.Driver") .option("dbtable", "employee") .option("user", "root") .option("password", "password") .load() jdbcDF.show() spark.stop() } } ``` 在这个例子中,我们使用SparkSession对象创建了一个DataFrame,通过JDBC连接MySQL数据库,读取了employee表中的数据,并使用show()方法展示了数据。 类似地,我们也可以使用DataFrame的API进行数据写入操作,例如: ``` jdbcDF.write .format("jdbc") .option("url", "jdbc:mysql://localhost:3306/test") .option("driver", "com.mysql.jdbc.Driver") .option("dbtable", "employee_copy") .option("user", "root") .option("password", "password") .save() ``` 这段代码将DataFrame中的数据写入到MySQL数据库的employee_copy表中。 总之,Spark SQL通过JDBC连接MySQL数据库,可以方便地实现数据读写操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

daydayup-2016

你的鼓励将是我创作的最大动力哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值