SPARK-SQL 读写数据库
//读取数据库
def readMysql(sparkSession: SparkSession): Unit ={
var table = sparkSession.read.format("jdbc")
.option("url","jdbc:mysql://localhost:3306/user")
.option("driver","com.mysql.jdbc.Driver")
.option("user","root")
.option("password","root")
//需要使用的数据表
.option("dbtable","user").load()
table.show()
}
//写数据库
def writeMysql(sparkSession: SparkSession): Unit ={
var data = sparkSession.read.json("data/user.json")
data.write.format("jdbc")
.option("url","jdbc:mysql://localhost:3306/user")
.option("driver","com.mysql.jdbc.Driver")
.option("user","root")
.option("password","root")
//指定数据表名
.option("dbtable","u1")
.mode(SaveMode.Append)
.save()
}
SaveMode的几个值
SaveMode.ErrorIfExists(对应着字符串"error"):表示如果目标文件目录中数据已经存在了,则抛异常(这个是默认的配置)
SaveMode.Append(对应着字符串"append"):表示如果目标文件目录中数据已经存在了,则将数据追加到目标文件中
SaveMode.Overwrite(对应着字符串"overwrite"):表示如果目标文件目录中数据已经存在了,则用需要保存的数据覆盖掉已经存在的数据
SaveMode.Ignore(对应着字符串为:“ignore”):表示如果目标文件目录中数据已经存在了,则不做任何操作