spark笔记之数据源之JDBC

1. JDBC

Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中。

1.1. SparkSql从MySQL中加载数据
1.1.1 通过IDEA编写SparkSql代码
spark笔记之数据源之JDBC 
spark笔记之数据源之JDBC 

执行查看效果:

spark笔记之数据源之JDBC

1.1.2 通过spark-shell运行

(1)、启动spark-shell(必须指定mysql的连接驱动包)

[AppleScript] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

spark-shell \

 

--master spark://hdp-node-01:7077 \

 

--executor-memory 1g \

 

--total-executor-cores  2 \

 

--jars /opt/bigdata/hive/lib/mysql-connector-java-5.1.35.jar \

 

--driver-class-path /opt/bigdata/hive/lib/mysql-connector-java-5.1.35.jar

(2)、从mysql中加载数据

[AppleScript] 纯文本查看 复制代码

?

1

val mysqlDF = spark.read.format("jdbc").options(Map("url" -> "jdbc:mysql://192.168.200.150:3306/spark", "driver" -> "com.mysql.jdbc.Driver", "dbtable" -> "iplocation", "user" -> "root", "password" -> "123456")).load()

3)、执行查询

spark笔记之数据源之JDBC

1.2. SparkSql将数据写入到MySQL中1.2.1 通过IDEA编写SparkSql代码

(1)编写代码

spark笔记之数据源之JDBC

spark笔记之数据源之JDBC

2用maven将程序打包

通过IDEA工具打包即可

(3)将Jar包提交到spark集群

[AppleScript] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

spark-submit \

 

--class itcast.sql.SparkSqlToMysql \

 

--master spark://hdp-node-01:7077 \

 

--executor-memory 1g \

 

--total-executor-cores 2 \

 

--jars /opt/bigdata/hive/lib/mysql-connector-java-5.1.35.jar  \

 

--driver-class-path /opt/bigdata/hive/lib/mysql-connector-java-5.1.35.jar \

 

/root/original-spark-2.0.2.jar  /person.txt

spark笔记之数据源之JDBC

(4)查看mysql中表的数据

 

spark笔记之数据源之JDBC