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中表的數據