```scala
package TestSpark
import java.sql.{Connection, DriverManager, PreparedStatement}
import org.apache.log4j.{Level, Logger}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object WriteMysql {
def main(args: Array[String]): Unit = {
Logger.getLogger("org").setLevel(Level.ERROR)
val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("test")
val sc = new SparkContext(conf)
val url: String = "jdbc:mysql://localhost:3306/腾讯招聘?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"
val user: String = "root"
val driver = "com.mysql.cj.jdbc.Driver"
val passwd = "123456"
val rdd: RDD[(Int, String)] = sc.makeRDD(Array((10, "tom"), (20, "Lisa"), (23, "UI")))
val sql = "insert into user values(?,?)"
val rdd2: RDD[(Int, String)] = sc.makeRDD(1 to 1000000).map(x=>(x, "用户" + x.toString))
rdd2.foreachPartition { x =>
Class.forName(driver)
val connection: Connection = DriverManager.getConnection(url, user, passwd)
val statement: PreparedStatement = connection.prepareStatement(sql)
var count = 0
x.foreach{
case (age,name)=>{
statement.setInt(1,age)
statement.setString(2,name)
statement.addBatch()
count += 1
if (count % 100==0) {
statement.executeBatch()
Thread.sleep(3000)
}
}
}
statement.executeBatch()
connection.close()
}
sc.stop()
}
}
转载请注明原文地址:https://blackberry.8miu.com/read-32147.html