1. JDBCjava
Spark SQL能够经过JDBC从关系型数据库中读取数据的方式建立DataFrame,经过对DataFrame一系列的计算后,还能够将数据再写回关系型数据库中。node
1.1. SparkSql从MySQL中加载数据
1.1.1 经过IDEA编写SparkSql代码mysql
执行查看效果:
1.1.2 经过spark-shell运行sql
(1)、启动spark-shell(必须指定mysql的链接驱动包)shell
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中加载数据数据库
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)、执行查询
1.2. SparkSql将数据写入到MySQL中1.2.1 经过IDEA编写SparkSql代码maven
(1)编写代码
(2)用maven将程序打包ide
经过IDEA工具打包便可工具
(3)将Jar包提交到spark集群url
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
(4)查看mysql中表的数据