环境:MySQL5.7
在写例子的时候,在pom.xml配置MySQL的驱动一直报 No suitable Driver
后面查了很多,说需要8.0以上的connector
配置后的例子如下:
在pom.xml中增加如下代码
<properties>
<mysql-connector-java.version>8.0.11</mysql-connector-java.version>
</properties>
<!-- 引入mysql的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version>
</dependency>
如果在maven中不主动加入jar,需要手动加上driver
package com.scala.test
import java.util.Properties
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{SQLContext, SparkSession}
object TestMySQL {
def main(args: Array[String]): Unit = {
//使用SparkSession.builder.替代SQLContext
val sqlContext = SparkSession.builder.
master("local")
.appName("TestMysql")
.getOrCreate()
val url = "jdbc:mysql://127.0.0.1:3306/wj?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true"
val table = "book"
val properties = new Properties()
properties.setProperty("user","root")
properties.setProperty("password","root123")
//需要传入Mysql的URL、表明、properties(连接数据库的用户名密码)
val df = sqlContext.read.jdbc(url,table,properties)
df.createOrReplaceTempView("book")
sqlContext.sql("select * from book").show()
}
}
运行如下: