一、MySql创建数据
在MySql中创建一个数据库stud和一个表stu,并插入三条数据。
二、Spark连接MySql数据库并读写数据
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
3、解压安装包
$ rpm2cpio mysql-connector-java-8.0.21-1.el7.noarch.rpm | cpio -div
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
进入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、执行命令连接数据库,读取数据并显示
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()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.