【大数据技术】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里查看数据
    如红色标注,说明已写入成功
    在这里插入图片描述
Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐