打开网易新闻 查看精彩图片

一、MySql创建数据

在MySql中创建一个数据库stud和一个表stu,并插入三条数据。

打开网易新闻 查看精彩图片

二、Spark连接MySql数据库并读写数据

二、Spark连接MySql数据库并读写数据

1、下载mysql的jdbc驱动。

1、下载mysql的jdbc驱动。

https://dev.mysql.com/downloads/connector/j/

选择操作系统:Red Hat Enterprise Linux/Oracle Linux

选择版本:Red Hat Enterprise Linux 7/Oracle Linux 7 (Architecture Independent)

2、将安装包上传至Linux系统,这里上传至/root

2、将安装包上传至Linux系统,这里上传至/root

3、解压安装包

3、解压安装包

$ rpm2cpio mysql-connector-java-8.0.21-1.el7.noarch.rpm | cpio -div

4、将解压后的文件夹移到spark的安装目录下

4、将解压后的文件夹移到spark的安装目录下

$ mv usr /root/spark-3.0.1-bin-hadoop2.7

这时就可以在
/root/spark-3.0.1-bin-hadoop2.7/usr/share/java目录下看到驱动程序文件mysql-connector-java.jar。

5、启动Spark Shell

5、启动Spark Shell

进入spark的bin目录下启动spark-shell,而且启动的时候要附加一些参数。启动Spark Shell时,必须指定mysql连接驱动jar包。

$ cd /root/spark-3.0.1-bin-hadoop2.7/bin

$ spark-shell \

$ --jars /root/spark-3.0.1-bin-hadoop2.7/usr/share/java/mysql-connector-java.jar \

$ --driver-class-path /root/spark-3.0.1-bin-hadoop2.7/usr/share/java/mysql-connector-java.jar

上面命令中,在一行的末尾加入斜杠\,是为了告诉spark-shell,命令还没有结束。

打开网易新闻 查看精彩图片

6、执行命令连接数据库,读取数据并显示

6、执行命令连接数据库,读取数据并显示

scala > import org.apache.spark.sql.SQLContext

scala > val sqlContext = new SQLContext(sc)

scala > val jdbcDF = sqlContext.read.format("jdbc").options(Map("url" -> "jdbc:mysql://localhost:10085/stud", "driver" -> "com.mysql.jdbc.Driver", "dbtable" -> "stu", "user" -> "root", "password" -> "root")).load()

其中,10085为mysql端口号,stud为数据库名,stu为表名。

连接成功后,读取数据。

scala > jdbcDF.show()

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片